自从上个月把围着脖子推部署到Google App Engine(GAE)上以后发现GAE真的是个强大的东西。首先它提供了一个免费的虚拟主机环境,身后是强大的Google服务器集群,并且提供了内容丰富的站点统计信息。其次它的服务器在国外,利用它做一些应用可以绕过GFW(但前提是GFW不把GAE给墙掉)。目前GAE支持部署Python和Java语言编写的程序,免费用户可以建立10个app,每个app有500M的空间,并且每天的request次数和数据读取次数等有限制(对于小规模的个人博客来说绰绰有余)。
基于GAE的这么多吸引人的特性,我就萌生了在GAE上建博客的想法。目前主流的博客系统如WordPress等,大多是用php写的,因此很难直接部署到GAE上,有网友尝试利用quercus在GAE上运行php程序,但需要修改大量的持久层操作,担心不稳定,因此放弃了这个解决方案。目前GAE上Python版的blog系统以xuming的micolog为主,从昨天晚上开始我便踏上了折腾micolog的征途。
1、在GAE上注册app的过程我就不说了,有google账号,看得懂英文,再从这个地址http://code.google.com/appengine 进去就行。
2、Python官网http://www.python.org/download 下载的地址好像被墙掉了,我是从这里下载的:http://download.huihoo.com/python/20080929-85.html,Python 2.5.2或以上版本。
3、从这里http://code.google.com/intl/zh-CN/appengine/downloads.html 下载Google App Engine SDK for Python。
4、在Google code上下载xuming的micolog,地址是 http://code.google.com/p/micolog/downloads/list
5、安装Python和Google App Engine SDK,解压micolog。进入Google App Engine Launcher后,File —〉Add Exsiting Application,选中刚才解压的micolog文件夹后点Add按钮,一个应用就被添加进来了。点击Edit按钮,修改第一行的application的值,比如我的是“application: steven-wang”,即改成你申请的app的名称。点击Run按钮后,如果一些正常再
点击Browse按钮,micolog便在浏览器中打开。
6、在确定程序可以运行后就可以部署到GAE上去了,同样是在Google App Engine Launcher中进行操作。但是在部署前需要修改micolog根目录下的文件index.yaml(micolog0.6及以上版本不需要此操作),目的在于删除单属
性的索引,因此将只有一个name条目删除即可,这里有一份已经修改好的index.yaml,可以直接下载。
7、替换好index.yaml文件后,点击Deploy按钮,输入google账号和密码,待提示部署成功后,便可访问部署在GAE上的micolog系统了。原始的micolog系统如下图:

上面大致介绍了部署的过程,其实我今天干的工作要复杂的多,因为还有一件重要的事情就是做一个自己喜欢的主题。本来想下WordPress的主题来改,后来发现他们俩的差别挺大,我对micolog又还不熟悉,挣扎了半小时后还是放弃了,继而转向在micolog的default主题上修改,把字体改成了微软雅黑,修改了sidebar和footer,制作了About me的page,最后就成了现在的样子:

下面是micolog上可以参考的变量列表,熟悉这些以后可以尝试拿WordPress的模版来改改了,
base.html
{{ blog.title}}: 博客标题
{{ blog.feedurl }}: RSS地址
{{ blog.theme_name }} 当前主题名称
{{ blog.baseurl}} 根域名
{{ self.m_list_pages}} 自定义页面列表
{{ self.logouturl}} 用户退出
{{ blog.author }} blog作者
{{ self.login_user.email }} 当前用户email
{{ self.login_user.nickname }} 当前用户名
{% block title %} {{ blog.title}}{% endblock %} 标题块
{% block head_block %}{% endblock %} 头部文件块
{%if ishome%}current_page_item{%else%}page_item{%endif%} 判断是否当前页为首页
{% block topmenu %}{% endblock %} 顶部菜单(生成
{%if self.is_admin%}{%endif%} 判断是否是admin
{%if self.is_login%}{%endif%} 判断是否是登录用户
{%block content %}{%endblock%} 通用页面中间内容部分
index.html
{% extends "base.html" %} 继承自base.html
{% block content%}{% endblock %} 定义content块替换base.html中的此块
循环中
{{entry.key}} 文章ID
{{entry.title}} 文章名字
{{entry.author}} 文章作者
{{ entry.link }} 文章URL
{{entry.edit_url}} 文章编辑地址
{{entry.date|datetz:"F jS, Y"}} 文章时间(具体参数可以参照php语言的时间格式化)
{{entry.content_excerpt}} 文章简介
{{entry.commentcount}} 评论数量
{% if entry.strtags %}Tags: {%for tag in entry.tags%}{{tag}} {%endfor%}{%endif%} 文章tags循环(附加判断是否有tags)
{% if show_next %}Older Posts ?{%endif%} 下一页
{% if show_prev %}? Newer Posts{%endif%} 上一页
siderbar.html
{% for comment in recent_comments %}
{{comment.author}}:{{comment.shortcontent}}... {%endfor%} 最近评论(循环列表)
{%for next in entry.next%}
{{next.title}}?
{%endfor%} 下一篇文章
{%for prev in entry.prev%}
{{prev.title}}
{%endfor%} 上一篇文章
{{ entry.content }} 文章正文
comments.html
{{entry.comments.count}} 文章评论数量
{%cycle alt1,alt %} 文章评论间隔(奇数编号的评论为alt1,偶数为alt)
category.html
{{category.name}} 分类名字
总的来说今天还是有些收获的,希望自己可以坚持在这上面写点东西,希望伟大的GFW不要动GAE,希望伟大的Google把GAE一直运转下去。再次感谢micolog的作者xuming。
今天,我也算是云计算的参与者了。
Resources & References:
1、将quercus应用在Google App Engine上(wordpress on GAE)
2、Python 2.5.2 Download
3、Google App Engine SDK for Python Download
4、micolog Download
5、利用免费的GAE(Google App Engine)建立强大的Blog(micolog)网站
6、micolog 模板的制作-illacrimo-plus-1
7、micolog 模板的制作-illacrimo-plus-2(完结)




和WP很多地方都相像 太强大了
找个时间去建立一个,学习一下
我也在GAE上用Micolog,有问题想请教一下:
我在管理后台新建一个页面并保存发布以后,在前台页面中显示不出来是怎么会事呢?
这样的话还是不能绑定自己的二级域名是个遗憾了......我研究研究,有什么不懂的话还向你请教哈
汗,现在才看到博主这篇文,不过好像micolog只能用Python2.5版本,原先升级到3.1.2无法上传,换Python2.5.4后总算上传了,不过还是有问题,就是照博主说的Google App Engine Launcher却依旧无法使用,老是警告找不到Python,现在试试2.5.2看看行不
终于找到介绍具体怎么上传的了,谷歌的文档居然忽略了这一块。
学习了,非常详细
@Fall_Nirvana, 路径没有设定,在Google App Engine的Edit-Preference里,将第一项设置好就可以了http://top-business.appspot.com/
挺好的.
同行啊~顶一个~你的个人页很漂亮~
你好:
我今天开始尝试在GAE上部署Micolog博客, 但是本地测试的时候显示正常, 却无法login, 总是出现错误, 请问是什么原因?
谢谢
@wlf, 本地的login与上传到GAE上的login不一样,你换一个浏览器试一试。
按照说明部署了一个,不过在导入wp.com导出的xml文件时出错,内容是
“unbound prefix: line 231, column 1” 。
文件里这一行的内容是
“ ”
请问这个要怎么解决?谢谢~~
@Brian,
文件着一样的内容是:
不知道怎么没显示出来。
然后按照 http://www.cnblogs.com/tangf/archive/2009/01/12/1374539.html 这篇文章说的可能是因为最后又图片输出成文章的原因出错,改过之后还是不行,出错信息不变。
@Brian,
< atom:link rel="search" type="application/opensearchdescription+xml" href="http://spapier.wordpress.com/osd.xml" title="Schwarzes Papier" / >
代码贴不上来么?
文章介绍详细,很是精彩,顶了!!!
突然发现博主的主题和我的一样啊
appspot.com
已被墙
我也用上了GAE