【原创】用阿里云ACE搭建wordpress方法及解决图片文件上传问题


阿里云上线很长时间了,不过因为一直没有邀请码,所以体验不到。近日貌似申请阿里邀请码容易很多,只需填写真实的资料申请,一天后便可拿到阿里云邀请码,算是变相免费开放了吧。
拿到后立刻上传了一个探针,发现服务器对PHP的限制可谓无微不至,绝大部分函数都被禁用了。上传了几个常用PHP程序,包括Discuz、Wordpress、Simple-Log,全部运行不起来,只能用官方推荐的应用了,但官方推荐的就一个–PHPWIND~
用的很不爽,所以研究了一下,发现SAE是可以运行的WordPress神器的,不过需要修改源代码。

我的SAE演示:http://free8.aliapp.com

网上有很多方法,大致为:

首先创建ACE应用

1.访问 http://ace.aliyun.com/,创建ACE应用,并且启动域名解析,目前在内测阶段,需要邀请码才可以

2.下载中文版 wordpress,下载地址:http://cn.wordpress.org/

3.解压 wordpress压缩包,并且修改部分文件,具体如下:
a. 重命名 wp-config-sample.php 为 wp-config.php
b. 修改 wp-config.php 中的数据库信息,数据库的详细信息可以参照自己的阿里云邮箱里面的邮件:

信息如下:
云数据库(RDS)应用信息
云数据库服务名称:XXXXX
云数据库类型:共享型
配置级别:MYSQL数据库1G空间
链接地址:XXXXX.mysql.aliyun.com:3306
数据库(DB)名:XXXXX
数据库账号:XXXXX
数据库密码:XXXXX
数据库备份周期:周一,周二,周三,周四,周五,周六,周日
备份保存天数:7天
c. 修改wp-includes/canonical.php 第58行

//$original['path'] = preg_replace(‘|/index\.php$|’, ‘/’, $original['path']);

改成如下,即去掉行首的注释符,阻止301无限重定向(否则你将无法访问后台安装页面)

$original['path'] = preg_replace(‘|/index\.php$|’, ‘/’, $original['path']);

4.用Ftp软件将wordpress文件夹中的全部文件上传到ACE的FTP服务器,我用的是FlashFXP

ftp的服务器信息参见阿里云里面邮件的信息:
网站应用部署信息
网站应用名称:XXXXX
二级域名:XXXXX.aliapp.com
开发语言:php
文件上传FTP地址:ftp://ftp.ace.aliyun.com:2222
FTP用户名:XXXXX
FTP密码:XXXXX

5.访问http://你的ACE域名.aliapp.com/wp-admin/install.php 完成后续的安装过程

经过上面的步骤后,应该你的wordpress就可以访问了。现在ACE已经解禁了fsockopen函数,所以在后台安装插件和模版都没有问题。不过有一个问题,就是你在发表文章的时候不能上传图片。网上并未给出有关的解决办法。开始以为是文件夹的权限问题,不过通过FTP无法修改文件权限。因为ace是把网站程序放在“云端”的,FTP只是一个上传用的中转,你的文件上传后被马上复制走了,所以你在FTP上看到的文件并不是在你的网站上实际存放的文件,对FTP上的文件修改权限或者重命名都是无效的。这点要特别注意,因为已经困扰了我很久~
阿里云为了保证平台安全,禁用了PHP的move_uploaded_file函数,所以所有通过这个函数做文件上传的程序包括wordpress都无法正常运行,ACE正在寻找兼容性解决方案。在兼容性解决之前,我们使用ACE提供的storage存储服务,这样修改程序,让wordpress的上传功能跑起来:
修改wp-admin/includes/file.php 第329行

if ( false === @ move_uploaded_file( $file['tmp_name'], $tmp_file ) )

替换成如下代码:

$ce = new CEStorage();
if ( 'false' === $ce->upload($file['tmp_name'], $filename) )

定位刚才修改的文件第350行,将下面两行用两个斜线“//”注释掉:

//copy( $tmp_file, $new_file );
//unlink($tmp_file);

OK。现在就可以正常使用wordpress发表文章并上传图片了!
目前已知的还有一些小问题,比如不支持.htaccess,无法使用固定链接。上传的图片不能生成缩略图,只能使用原图,不过都不影响使用了。

发表回复

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

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据