Apache 500错误与PHP乐趣


Apache 500 Error with PHP Fun

所以我在我的godaddy(不要恨我)虚拟服务器上运行一个PHP脚本,我预计大约需要5分钟才能完成执行。脚本是CURLing页面,但一次容纳的页面永远不会超过1个(它是在重复使用同一变量的循环中完成的)。我将php5.ini文件修改为:

max_execution_time = 600
max_input_time = 120
memory_limit = 64M 

我通过phpinfo验证了ini文件的更改已经生效,但120秒后我收到了一个Apache 500错误。这是这次的错误日志:

[Wed Jul 11 22:08:52 2012] [warn] [client **.**.**.***] mod_fcgid: read data timeout in   120 seconds
[Wed Jul 11 22:08:52 2012] [error] [client **.**.**.***] Premature end of script headers: test.php

如果有人对我为什么会出现这些错误有任何想法,或者对尝试的事情有任何建议,我将感谢您的帮助。我确实注意到php设置中有一个选项设置为120,但我不确定它是否会有效果:realpath_cache_tt

我还在php文件中设置了一个时间限制:set_time_limit(600);

提前谢谢。

更新:以下是我在.htaccess文件中尝试的内容:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www'.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
<IfModule mod_fcgid.c>
IPCCommTimeout  7200
</IfModule>

在任何页面加载时都会导致Apache 500错误。我还禁用了FastCGI,但问题仍然存在

已解决RobB建议如下:IPCCommTimeout 7200这本应该起作用,但由于我的godaddy共享托管,这是不允许的。是时候找到新的托管服务了。

我不确定GoDaddy上这个问题的处理方式,但正常的解决方案如下:

您遇到的问题是由于FastCGI执行PHP脚本,但它没有在默认IO超时(120秒)内生成响应,从而导致500内部服务器错误。

尝试编辑默认的VirtualHost conf文件,通常位于/etc/apache2/sites-available/default,并在<VirtualHost>上下文中添加此指令:

<IfModule mod_fcgid.c>
   IPCCommTimeout  7200
</IfModule>

保存修改后,使用以下命令重新启动apache2:sudo /etc/init.d/apache2 restart

根据我从GoDaddy中确定的情况,PHP/FastCGI在共享托管中的最长时间限制是120秒,客户端无法增加。我建议联系他们的支持人员寻求帮助,希望他们的声誉不会受损,你将能够得到帮助。

更新:不确定它是否会有帮助,但你可以尝试在你的主机控制中心从FastCGI更改为PHP5(设置>文件扩展>PHP5)。