PHP最大执行时间
在我的Plesk 11中,PHP5.4.7。在Apache/2.4.3系统中,当我做cron作业时,我从error.log文件中得到这个错误PHP最大执行时间,php,apache,execution-time,mod-fcgid,Php,Apache,Execution Time,Mod Fcgid,在我的Plesk 11中,PHP5.4.7。在Apache/2.4.3系统中,当我做cron作业时,我从error.log文件中得到这个错误 [Tue Mar 19 21:33:18 2013] [warn] [client 88.44.55.66] mod_fcgid: read data timeout in 45 seconds [Tue Mar 19 21:33:18 2013] [error] [client 88.44.55.66] Premature end of script h
[Tue Mar 19 21:33:18 2013] [warn] [client 88.44.55.66] mod_fcgid: read data timeout in 45 seconds
[Tue Mar 19 21:33:18 2013] [error] [client 88.44.55.66] Premature end of script headers: index.php
所以我用这个检查了执行时间:
echo ini_get('max_execution_time');
我得到了这个值:156000
这似乎不是一个超时问题,但我得到超时错误
未来参考答案:使用vim编辑
/etc/httpd/conf.d/fcgid.conf
文件。将
FcgidIOTimeout 45
更改为FcgidIOTimeout 600
重新启动Apache。
然后,快速CGI超时将得到解决。如果您在cronjob中通过http访问它,那么它将作为网页请求工作,然后它可能会受到apache超时的影响,因为apache参与了该过程。如果不应该通过apache正确运行构建,则可以使用php解释器以绝对路径直接运行php脚本,绕过apacheCron脚本。您的错误表明您正在运行mod_fcgi设置的超时。这是
mod_fcgid
超时,而不是PHP超时。查看以了解如何更改它,尤其是在。如果它是cron作业,则应由系统的crond
使用PHP可执行文件而不是HTTP服务器来运行。@rid,如果不应该通过apache正确运行构建,许多人最终会编写cron作业来请求带有wget/curl.cron脚本的页面。那么我们应该在哪里通过控制台运行cron脚本???@FoysalVai,目录,类似于php/path/to/php/script.php
您可以使用php解释器直接使用绝对路径运行php脚本,绕过apache我们如何做到这一点?以防万一,这对任何人都有帮助:增加fcgid.conf中的FcgidIOTimeout值并重新启动apache。CentOS:/etc/httpd/conf.d/fcgid.conf Debian:/etc/apache2/mods enabled/fcgid.conf