BAE小记

今天闲来无事,于是就去折腾BAE。虽然都是App Engine,但是SAE和BAE还是有不少的区别(如果真都一样那叫抄袭了),所以在SAE上部署应用的经验只能对部署BAE起到一部分作用。不过BAE仍然具备云平台的共性,比如有云存储、云数据库之类的。而且也是一个个的应用。实际上不论SAE还是BAE应该都是属于PaaS(Platform-as-a-Service,平台即服务)的范畴,都能提供一个平台构建应用。

摸索了一番并参考网络上的教程,初始化了一些Service,主要有创建应用、MySQL、云存储的Bucket等等。这些都和SAE比较像。创建应用时应注意选择“PC Iframe应用”,只有这个才可以建网站。当我兴冲冲建好应用访问域名时,发现是404,最后才发现需要点“上线”才能访问。

当然今天在BAE上部署的是WordPress,说到WordPress,其适应能力还真的是很强,原来曾经在SAE上做过测试,基本上不用修改代码就可以在SAE上运行,当然,其资源利用的效率也就随之降低。而这次在BAE上实验,由于一开始没有看到官方提供的移植版,所以果断去下载了最新的3.5.1版,通过SVN上传。SVN也是云平台的一个特征,BAE提供了Git和SVN,而SAE只有SVN,OpenShift(RedHat的云服务)有Git和自家的rhc。云平台一般都不支持FTP之类的,因为云平台需要将请求分摊到一个甚至多个集群上处理。或许你上传的文件A在北京的服务器,而文件B在上海,但是在你看来他们都保存在你云存储的一个目录下。

SAE和BAE都只会提供数据库的环境变量,所以WordPress的一般安装方法就不能正常进行了。需要对照着官方移植版里面的wp-config.php,手动修改wp-config-sample.php并另存为wp-config.php才可以。当然配置过程并不难,其内有中文的说明。值得注意的是其中要到这里去生成一个私钥,然后替换相关内容。

最后配置好之后便可以进入站点的配置工作。实际上至此基本上就可以正常使用了,因为WordPress的适应性很强,所以也没有仔细去找官方移植的版本有具体的那些修改。但是有一个问题,就是伪静态的问题,尝试了多次也无法成功。这一点不像SAE可以有一个配置文件,rewrite规则也与nginx较为类似。BAE上只能分部添加伪静态规则,类似下图:

BAE_rewrite
最左:规则类型 中:规则 右:执行

其中.*似乎是正则,然后把获取到的参数统统交给index.php处理。规则可以一条条添加,也可以编辑SVN相应版本目录下的app.conf。但要注意的是app.conf必须严格按格式写,否则不能正常识别。具体是这样:

  - url : /.*.html
    script: /index.php
  - url : /search/.*
    script: /index.php
  - url : /tag/.*
    script: /index.php
  - url : /category/.*
    script: /index.php
  - url : /date/.*
    script: /index.php

注意一定要保持格式。在有,如果是有页面需要伪静态,那就必须一个页面一个规则。例如我有一个AboutMe页面,那就应该写上:

规则类型:url     规则:/aboutme    执行:/index.php

这时,你就必须在后台中设置固定链接格式为:

/%post_id%.html

但是如果你想设置成直接是/%post_id% ,并且打算改伪静态为:

 规则类型:url     规则:/.*    执行:/index.php

那么包括/wp-admin之类的都会被伪静态了。

 

BAE不像SAE可以比较方便的部署应用,因为SAE有一个应用仓库,可以一键部署(值得吐槽的是,这个应用仓库里的WordPress至今还停留在3.4阶段,当然这不能阻止我们用3.5.1的脚步)。当然BAE可以上传代码包,但是网络上的代码包安全性又是另一回事了。

发布者

《BAE小记》上有5条评论

        1. 查了下网上有人说是thttpd,具体的还真不清楚。话说你的网站貌似打不开。

          Internet Explorer 10.0 Internet Explorer 10.0 Windows 8 Windows 8

发表评论

电子邮件地址不会被公开。 必填项已用*标注