在与DH的客服多方联系协调,也许是PS这个计划还比较新,我们这些小白鼠是首当其冲,也因如之前的blog所言,我难以放弃那种自由使用的感觉,于是便续费使用第2年,虽然问题很多,但自由度让我可以自己去修理它。求他们,不如自己动手吧,他们实在回复得太慢了。

首先,我要找到的是最大的造成Interal500错误的原因,按DH方的说法,是WordPress造成的,特别是WP-SuperCache之类的程序(它在.htaccess中有修改,一定要清理掉) ,还有RSS一些插件,GOOGLE SiteMap的频率等都按一定的优化方式进行调整,让WP程序装入一个独立的SHELL用户下,进行观察,发现无论网站 是否繁忙,都有一个php5.cgi 占用20%的内存,在我仅有的150MB内存上吃掉1/5,是何等的心痛。于是经过好几个星期的搜索并没有任何优化的方案,唯一锁定的方法就是限制PHP的内存使用。也就是使用每个独立的php.ini.

这儿有个非常有用的链接: http://wiki.dreamhost.com/index.php/PHP.ini

大至的方法是:比如你的域名是 www.abc.com (以下的这部分换成你的域名)

建立一个 /home/www.abc.com/cgi-bin

在建立文件 /home/www.abc.com/cgi-bin/php-wrapper.cgi

内容为:

#!/bin/sh
export PHPRC=./cgi-bin
exec /dh/cgi-system/php5.cgi

接着COPY系统的php.ini

cp /etc/php5/php.ini  /home/www.abc.com/cgi-bin/php.ini

然后建立文件 /home/www.abc.com/.htaccess

内容为:

Options +ExecCGI
AddHandler php5-cgi .php
Action php-cgi /cgi-bin/php-wrapper.cgi
Action php5-cgi /cgi-bin/php-wrapper.cgi

以下的几步很重要,不然你将继续得到500错误:
cd /home/www.abc.com/cgi-bin/
chmod 755 php-wrapper.cgi
chmod 640 php.ini
chmod 755 ../cgi-bin

你可以建立一个 /home/www.abc.com/phpinfo.php试试:
内容如下:
<?php
   echo phpinfo();
?>

你使用Browser访问http://www.abc.com/phpinfo.php

注意Loaded Configuration File 这一行是不是你自己定制的php.in,如果是则基本成功了。

然后再修改/home/www.abc.com/cgi-bin/php.ini
查找:memory_limit 设置成为
memory_limit = 16M      ; Maximum amount of memory a script may consume (128MB)
目前像我这种小站16M足够了
如果你使用了XCache
记得缩小你的XCache大小。
如果使用和安装Discuz论坛,可恶的DH竟然让我把 <? ?> 全改为 <?php ?>
其实只要找到php.ini中的:
short_open_tag 并设置为
short_open_tag = On
便大功告。今天就通过这样的方法,将资源很好的利用,并控制在一定的范围内,
暂时不出现500错误了,希望这文章能帮到一些仍在寻找这个问题解决方法的朋友。

特别的小包: dreamhost500solved