在GAE上部署Micolog博客系统

作者:Steven Wang  来源:Steven Wang's Blog

自从上个月把围着脖子推部署到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系统以xumingmicolog为主,从昨天晚上开始我便踏上了折腾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,目的在于删除单属性的索引,因此将只有一个 name条目删除即可,这里有一份已经修改好的index.yaml,可以直接下载
7、替换好index.yaml文件后,点击Deploy按钮,输入google账号和密码,待提示部署成功后,便可访问部署在GAE上的micolog系统了。原始的micolog系统如下图:

Micolog-defaultTheme

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

Micolog-FirstThemeOfStevenWang

下面是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(完结)

相关阅读:

本文网址:http://steven-wang.appspot.com/gae-micolog-blog-deploy-1001.html


没有评论: