我有一个PHP cron作业在运行29分钟后失败了。日志(/var/log/php_errors.log)中的错误是:
[01-Mar-2012 00:32:57 UTC] PHP Fatal error: Maximum execution time of 60 seconds exceeded in /path/file.php on line 2079
触发cron的crontab条目是:
00 00 * * * /usr/bin/php /path/file.php
根据我的研究,我认为这与max_execution_time配置设置无关,因为:
我知道一个事实,它运行了29:18
我有一个PHP脚本,它将由应用程序管理员的请求执行。它做很多事情,至少需要20分钟(取决于数据库的大小)。
Apache TimeOut指令设置为300(5分钟),这将关闭连接,并在我的PHP脚本完成后返回500个状态代码,如果执行时间较长的话。
为这个脚本设置长时间的PHP max_execution_time是无用的。
<?php
// long script
ini_set("max_execution_time", 3600);// 1 hour
// Apache still responses with the same "Connectio
我试图让Apache缓存运行昂贵的PHP脚本的结果(它访问具有速率限制的第三方服务器),但是如果客户端发送一个If-Modified-Since头,缓存就被绕过了。
CacheEnable disk /script.php
CacheLock on
CacheLockMaxAge 60
CacheIgnoreHeaders Set-Cookie
# prevent client explicitly requesting un-cached content
CacheIgnoreCacheControl on
CacheDetailHeader on
php脚本在其响应中设置以下标题:
Las