成长脚印-专注于互联网发展
【解决】Emlog迁移到BAE(百度应用引擎)解决过程
post by:天之骄子 2013-5-23 15:22

话说一直都是用的国外的免费虚拟空间,第一个因为网站的Mysql超过了额定负荷N次,提醒说可能会被禁用,所以又换到了PHPCLOUD的开发者空间上,
头两个月还正常,五月初便被国内屏蔽了IP,国内IP无法访问,必须翻墙。
无可奈何,决定试试BAE(可以允许绑定个人的域名)。以下记录迁移过程。
对于注册BAE,创建应用绑定域名之类的,自己看看帮助文档或百度一下都可以找到的,再次不敷述。在此主要说比较容易碰到的问题

一、创建新应用,提交新版本后(可以直接打压缩包传上去,BAE会自动解压出来的),提示版本发布失败(然后会报许多文件出错)
        原因是emlog的PHP文件只有<?php 开始标签,没有?>结束标签,为什么没有“?>”结束标签呢?自行查看“为什么PHP文件一般没有结束标记”;

解决方案,就是把每个php文件打开,将没有结束标签的文件加上结束标签。

二、提交版本,创建好数据库后,数据库连接失败:

        BAE数据库连接要按照文档中的方法获取数据库连接用的用户名端口等信息
打开emlog的config.php文件修改数据库配置相关信息如下:
/*替换为你自己的数据库名(可从管理中心查看到)*/
$dbname = 'WluDexhLCoSFGHrcNfxy';
 
/*从环境变量里取出数据库连接需要的参数*/
$host = getenv('HTTP_BAE_ENV_ADDR_SQL_IP');
$port = getenv('HTTP_BAE_ENV_ADDR_SQL_PORT');
$user = getenv('HTTP_BAE_ENV_AK');
$pwd = getenv('HTTP_BAE_ENV_SK');

//mysql database address
define('DB_HOST',$host.':'.$port);//这个地方重点注意,要加上端口
//mysql database user
define('DB_USER',$user);
//database password
define('DB_PASSWD',$pwd);
//database name
define('DB_NAME',$dbname);
三、数据库连接成功后,登陆后台管理时,发现面板,右边的内容总提示777文件权限问题,无法显示:

        原因是你的安装的插件问题(BAE不支持对文件除读以外的任何权限,和SAE一样)。

        在迁移博客的时候特别要注意这一点:把用到文件修改/写权限的插件全部删掉,不然想转移过来再删掉就很麻烦了(右边内容都不显示,还咋删掉呢。我是在admin\views中的header.php中找到“<?php doAction('adm_sidebar_ext'); ?>”将其屏蔽后,打开插件管理页面"http://abc.com/admin/plugin.php"把相关插件删除的)

其他所有涉及到777文件修改/写权限的php文件都会导致这样或那样的异常。

四、图片和附件无法上传(原因同三,BAE不支持对文件除读以外的任何权限
        BAE有自己的云存储环境和相关接口(支持CURL方式文件上传),但毕竟附件以外链的方式存在肯定不方便以后的博客的再次迁移,所以我目前的解决方案是:
用SVN将文件上传到BAE云环境的网站存放目录的content\uploadfile中,添加附件或图片时,直接手动添加url地址就可以了。

五、BAE对于每个应用每天的流入流出流量都有一定得免费限额(超过限额需付费),所以一定要做好网站流量的监控,防止被恶刷流量。打开BAE的防火墙,设置好相关限制就好了。

评论:
发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容