[在sina app engine 上使用drupal 7.8]---install guide---2011-10-6
文件:http://drupal7sae.sinaapp.com/drupal7for-sina-app-engine.rar(源文件来自drupal官方7.8版,我改了install相关使适应sae)
将文件中的所有内容解压上传到sina app engine(SAE)中,关于SVN等应用请到sae官网查询
(drupal6请下载另一个文件,可到http://www.trackself.com/archives/1757.html查看)
[安装:与drupal6略有不同]
1.先申请一个sae:http://sae.sina.com.cn/activity/invite/44638/weibo
2.创建一个APP,例如这个APP叫drupal7sae
3.在这个APP的管理页面打开MYSQL功能,设置完毕
4.上传解压文件至SAE(前段时间公布的安装包中还包含着SVN信息,不好意思了,让安装造成不便 ,现已经重新svn export出来,方便大家上传了)
与常规的drupal安装只有一丁点不同
例如你的域名为:http://drupal7sae.sinaapp.com/ (这是我的第一个drupal7应用)
1.直接访问:http://drupal7sae.sinaapp.com/install.php, 余下的步骤与drupal安装一致(官方的drupal只需要访问首页,这里是程序的一点点不同)
2.安装结束后请删除install.php , 这其实也是drupal官网的建议
[email和找回密码功能:]
SAE的管理界面上的原文:"SAE邮件class , 目前只支持SMTP",意,思是他不直接支持php的mail函数,就是drupal内核email是不支持的.
可以安装一个drupal的smtp模块解决(注:此模块非常消耗性能,我有切身体会,所以在移植过程中我就没装上了)
1.正如官方drupal在用户的PC机测试安装一样,官方的drupal也是不能发送email的,这是因为用户本机上没有配置好发送email的程序
2.SAE默认也是没有配置好email的,我的意思是他不直接支持php的mail函数,就像是你在本机测试没有安装好邮件发送客户端一样。解决办法是:安装drupal的smtp模块,这与官方提供的模块安装一致,与是否SAE环境无关,所以只是提提了。drupal默认也是没有将smtp模块放在core上的,在以后我改一个profile,帮大家在安装时也能填上自己的email,就能直接解决这个问题了,现在还是暂时自己手动下载drupal.org上的smtp模块然后手动安装吧.
3.所以,找回密码功能:你得配置好email才有可能找回密码啊,对吧。
4.在不久的将来,我会将文件上传,中文化,email,一并搞定...这段时间读博课程太重了。
[debug:]
近日有朋友说安装不成功:请先用SVN的版本浏览器或sae的网上代码编辑器查看一下,解压是否完整,是否上传过程中缺少文件,特别是install.php
[不同点:可能会出错及出错分析]
1.当运行install.php的时候,也许会自动跳转到“install.php?1317905005”这样形式的URL上,目前不明原因,不过不会产生任何问题,手动删除问号后内容,即重新访问install.php即可
2.如果在http://drupal7sae.sinaapp.com/install.php?profile=standard&locale=en
这个页面当填写完信息后点save and continue 很长时间没反应的话,没关系,点浏览器的终止“X”,再点多几次就好了。
(出现这个问题,有可能是因为drupal 7 standard版安装太多模块的缘故,也有可能是我测试的时候网络问题,你们不会遇到吧)
然后点刷新
注,如果安装完后登陆不了,可以“删除”PHPMYADMIN中全部表,重新安装即可;或者自己修改user表重设密码即可(高级些)
3.当安装完后会出现下面的红色警告,别理它,是正常的:这是因为SAE不支持php的stream,这是我无能为力的,估计sina也不会打开,要打开了就能做视频下载站了
“
Notice: Undefined variable: errno in drupal_http_request() (line 829 of /data1/www/htdocs/323/drupal7sae/1/includes/common.inc).
Notice: Undefined variable: errstr in drupal_http_request() (line 830 of /data1/www/htdocs/323/drupal7sae/1/includes/common.inc).
”
这个问题也许会影响三个模块:PING(有点可以忽略的影响)、update(影响不大)、aggregator模块(影响最大,估计不能正常运行[我从来不用它])
这是因为SAE不支持php stream,而重写stream也许可以用CURL,但那过程就太复杂了,有熟CURL的朋友可以重写drupal_http_request。
而且,上述的三个模块:ping可以改用multiping,aggregator可以改用FEED,效果更好,update麻。。。不启用也罢。
但我实在想不起drupal还有哪个非常重要第三方模块一定要用到drupal_http_request了。
[更新:warning]
drupal 7我除了改动了install相关的文件,还改了一个地方,是filter的DOMDocument那一段,这是我必须改的,否则你发帖后网站就常出错。
(就只hack core 这个地方了,其余没改,不信可以自己下个diff软件查一下)
原因:SAE没有启动PHP的DOM模块,我已经发了申请过去尝试请求他们打开,但回复是建议已经收录,暂时请用simpleXML代替(代替不了的!)
所以,也许不久的将来我会将这个hack改回来,前提是SAE已经打开PHP的DOM模块。
所以这里有一个小影响:当你要更新drupal版本的时候,不要更新module/filter/filter.module这个文件,其余更新没变
(drupal6的SAE版本没有更新问题,我自己一直用drupal 6,个人认为drupal 7除了好看点,并不能帮你赚更多广告费)
所以你要程序更新的时候,你要不等我发布drupal7forSAE的新版本,要不就更新时避开这一个文件就行了,不会影响drupal的。
[伪静态:]
即将?q=node/1这样的URL变为直接/node/1.
就目前而言,SAE似乎是不支持.htaccess的转向的。
但可以根据各自的应用名称,参考下面的官方做法,在SVN中上传一个叫conf.yaml的文件去实现
http://sae.sina.com.cn/?m=devcenter&catId=193
注:我测试了上面的做法,没成功,我暂时也没有这个伪静态的需求。请测试成功伪静态态的告之一声做法
[模块:]
不需要php write的模块估计都是可以安装成功的。
[待解决问题:]
1.email:我没看明白SAE上的“请申请一个专为SAE配置的EMAIL”这句话,我也找不到申请地址,否则我会将drupal的邮件模块也hack掉的,不过我自己并不需要sae上的drupal能对外发邮件。你要是需要的话,我建议下载一个模块:SMTP
2.中文化及其他模块测试。。。时间问题
[建议:]
1.其实用drupal 6不错麻,至少我没hack core,你可以100%放心使用,目前我用drupal 6也没遇到任何问题
2.有问题请加我新浪微博:http://weibo.com/trackselfcom, 或到我博客http://www.trackself.com/archives/1757.html
[后话:]
sae上跑drupal很快,快到我想象不了,所以,没必要安装drupal的一些性能模块了,默认即可
boost即便安装了也用不到
drupal默认的压缩CSS和JS的功能也不能用,因为SAE是没有写文件的权限的
这也许能通过重写fwrite来解决问题,但个人感觉没必要,因为现在已经很快了。