在与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


Leave a reply