Dreamhost提供的php有不少限制,昨天折腾了一个晚上终于成功地在自己的虚拟主机上编译了php5。

Why

用下来,发现使用自己编译的php5有这么几个好处:

  1. 可以自定义内存分配上限,默认只有32M,通过wordpress安装插件的时候经常出现内存不够的问题。

  2. 上传文件大小限制也能改,默认只有2M,基本没法通过wordpress传音乐之类的比较大的文件。

  3. 使用自己的php后解释执行的进程uid也是自己了,这样就避免了很多nobody用户访问/修改/增加文件所带来的问题。

How to compile

编译和安装的大部分步骤可以参考http://wiki.dreamhost.com/index.php/Installing_PHP5,这里补充一点我碰到的问题和解决方法。

因为我这台dreamhost虚拟主机用的是x86_64,而通过下载的php5的configure文件默认查找的是/usr/lib/下面的共享库,通过–with-libdir=lib64设置查找路径后却无法找到openssl库了,于是我用了个很山寨的方法,把configure脚本里查找libmysqlclient时的路径临时改成了/usr/lib64,然后再改回/usr/lib。

安装脚本开头定义的几个包的名字可能也要修改下,如果下载出现错误的话去上级目录看下最新的包的名字是什么就行了。另外脚本中解压.Z和.tar.gz文件用的是uncompress命令,似乎在我的这个主机上没有安装,改成tar zxf就行了。

How to use

最后说下编译成功后怎么使用,具体方法那个网页上也讲过了,只要把编译后的php.cgi放到/cgi-bin/下然后改下.htaccess即可。

对于子域名,比如我这个techblog.iamzellux.com,参照网页上的说明把整个cgi-bin用符号链接的方式link到子域名的根目录下是最方便的方案,当然别忘了修改.htaccess。