2009年3月4日星期三

利用Google App Engine建立博客

在昨日搞定在线代理网页后,今日又有进展.学会了用Google App Engine建立放在GOOGLE服务器上的博客,速度飞快,而且可以绑定二级域名,尝试了才知道原来二级域名可以和一级域名A纪录不同的.一切测试都已成功,却发现自己绑定的二级域名居然属于被墙的IP地址(ping ghs.google.com 72.14.235.121),还得需要自己的代理网页才可以访问.

再PING proxy2china.appspot.com得出72.14.203.141,可以直接访问.

以下是网上得来的教程:
-------------------------------------------------------
http://samubrapeng.appspot.com/first-1001.html

偶然看到一个地方有介绍用Google App Engine安装python语言的blog,早就想试试了,却不知道怎么着手,发现现在谁都可以申请Google App Engine了,真是意见不错的事~~废话不多说,开始你的python之旅吧~~

首先了解下Google App Engine,简单的说就是一个Google提供的强大的开放的虚拟主机,每个用户可以建立10个app,也就是10个网站,每个网站500M的空间,也就相当于5G的个人空间。不过,大家不要动歪脑筋,因为Google的限制中一个app只能最多1000个文件,单文件最大500K,所以基本上以为这空间可以放大容量文件的就死心吧。加上GAE提供的是python语言的支持,还不支持PHP,更不用说.NET了,同时还没有MYSQL,自身提供的数据库好像还是很不强大的,另外还不支持FTP,需要使用python上传(不过还蛮好用),加上python的程序本身就不多,Google的GAE又有很多的限制,所以基本上只有拿GAE看看的份了。

今天寻找了一下python+blog,不过效果不是很好,虽然许多大大们都说python开发blog简直是小菜一碟,但我真的没有找到几个,可能国内的还不多吧。首先我找到的是pylogs,看了演示网站,觉得非常的不错,简洁明了,功能也是可以,于是就下载,上传到GAE,结果500错误,在本地调试,也是500错误,难道pylogs用的是Django 1.0框架,而Google提供的是0.96的框架?当然,pylogs是需要MYSQL支持的,而DreamHost的MYSQL是支持外联的,所以不应该存在问题。最后只好作罢。后来找到了这个micolog(官方网站(不过我这边上不去,可能又被墙了),下载地址,现在0.5版本),看到这个的时候是惊喜的,配置完成后登陆到后台完全是惊讶的,应该说这确实是一个非常不错的blog程序了,并且和wordpress做的很像,功能也类似,打着GAE python blog的旗号,让人非常喜欢。看看人家列举的功能吧:
custom theme
tags and categories for the blog entry.
rich content editor by tinymce
import data from wordpress export file
menu & pages management.
cache enabled
implement wordPress API and metaWeblog API ,support client writer (such as window live writer)

看到上面这些功能我想基本上都够用了吧。既然说到这里,那么我们做一下简单的比较吧,我为什么要推荐这样的一个blog。首先不管zblog还是wordpress都需要空间存放,那就需要购买虚拟主机,而如果用GAE则完全免费,并且GAE的速度是飞快的没有怠机的(可能会有,但Google强大的集群技术应该不会出现这样的情况);其次,如果使用Google blog服务,虽然可以绑定自己的域名,但是总在页面最上显示Blogger的搜索和提示,总觉得不爽;再次,我想放自己的Google adsense怎么办(Blogger是支持adsense的)?总觉自己做模板什么的灵活一些,Blogger的adsense存放位置可能不是很灵活。可能原因还有更多,当然GAE的缺点也是有的,比如可能被墙挡住,数据库不容易控制等等。话题有点扯远,甚至说到了GAE和虚拟主机的比较去了。从上面的功能上来看,tag和categories我觉得不用说,定制皮肤还不错,我喜欢的是从wordpress导入、拥有pages功能和支持WLW,当然cache也不错。所以,如果你想用Wordpress,那么你可以先用micolog+GAE建立一个bolg试试,免费加快速访问,一定会让你惊喜的。

回到正题,从头开始讲整个安装设置,包括Windows live writer中的设置。

1.既然是使用GAE,那当然要注册一个GAE吧,你只要有Gmail帐号就可以了。然后按照步骤建立一个app,这样你就差不多得到你的网站名了,我注册的是samubrapeng,所以可以使用samubrapeng.appspot.com这个Google提供的免费二级域名来访问。

2.下载App Engine SDK。因为要用到这个来上传app的。安装SDK,桌面上就提供了一个Google App Engine的文件夹快捷图标,进入该文件夹,看到的是一些py文件,不用管,只要知道dev_appserver.py是在本机模拟开发环境的,而appcfg.py是用于上传等工作的,具体就去参考入门指南吧。

3.下载micolog,这是主程序当然要下载了。完成后是一个压缩包,将该压缩包解压缩到Google App Engine所在目录。

4.进入Google App Engine下的micolog目录,用文本编辑器打开app.yaml文件,这是一个配置文件,只需要将第一行的application后的内容改成你所建立的app的ID就可以了,比如我的就是tangf2004。(要知道第一次就是因为没有理解这个导致文件上传到GAE都没有成功,笨吧)

5.开始-运行-cmd,命令行进入到Google App Engine目录,输入命令:appcfg.py update micolog/,回车确定。第一次上传的话会提示输入Email,就是你自己注册的Gmail地址,密码也是你的gmail地址,然后提示一些信息,大致就是验证通过、找到多少文件、开始上传、结束上传等信息,很快就完成了。(如第4点所说,如果app.yaml文件的ID是错的那么你是上传不成功的)

6.那就赶紧开始你的Blog之旅吧。登录samubrapeng.appspot.com就可以看到效果了。点击右上角的admin就可以开始管理你的blog了。看一下简单的后台吧,和wordpress很像哦。

虽然看上去完工了,但后续工作还没有完。下面再说几件事情吧。

将该app绑定到一个自有的二级域名:

首先该域名是已经注册了Google apps,如何注册请看我的上一文:Google apps注册以及解析ghs.google.com。(不过遗憾的是,好像我上文提供的ghs的替代IP又出问题了,下面留言的朋友提供的IP也不行,最后勉强又找了一个可用的IP。我怀疑徐明的博客就是因为墙挡住了而无法访问)。

然后,进入到appengine中你刚刚建立的app的控制面板,在左侧的管理工具栏中点击Versions,有一个add domain的按钮,就是它了,点击进入下一页面提示输入域名,直接就是国际域名,比如我的就是sharesh.cn,如果你的域名还没有注册Google apps那么会提示无法继续的。再继续的话就是进入到Google apps的管理面板了,提示输入域名,写一个二级域名就可以了,所以我就写了gae.sharesh.cn。确定后提示该二级域名的CNAME需要指向ghs.google.com,完成后才能确认点那个我已经完成了该操作的按钮。(这里很简单,图片也不上了,写的也很罗嗦,自己一步一步很容易搞定的)

最后,需要在域名中设置上一步中的二级域名的CNAME记录。进入时代互联的控制面板,域名VDNS管理,增加一个二级域名gde,我没有使用CNAME,而是直接使用了A记录,A记录的IP设置为刚刚找到的可以访问的ghs对应的IP就可以了。重启VDNS,没有等待几秒,我就去点了上一步中的我已完成操作确认域名,竟然就直接可以用了,看来增加一个二级域名的DNS解析速度还是比较快的。

所以,你现在可以通过这两个域名来访问我的GAE上的blog程序了:GAE.sharesh.cn(我自己的二级域名)和Tangf2004.appspot.com(Google提供的免费二级域名),两者访问的效果都是一样的。