我有一个我设置的脚本:
set_time_limit(0)
但仍然得到
Fatal error: Maximum execution time of 90 seconds exceeded in /home/Feed.php on line 234
我也尝试过设置:
php_value max_execution_time 120
<。>在.htaccess文件中,但仍然无法阻止此错误 - 为什么这不是重写的任何想法?
答案 0 :(得分:5)
最有可能的是,您的主机正在运行安装了Suhoshin补丁的PHP副本。此补丁为PHP提供了大量安全性和操作性增强功能,包括允许主机禁用set_time_limit()
等功能。
主机可以通过其他方式禁用set_time_limit()
功能,但这是最有可能的。 (特别是因为你已经排除了安全模式)
为什么要禁用此功能?因为花费很长时间运行的PHP函数通常也会占用大量服务器资源;在共享托管环境中,主机减轻此类事情以避免让恶意脚本影响其他用户是明智之举。
你能做些什么?
首先,您确定需要设置时间限制吗?你知道为什么你的脚本花了那么多时间来运行吗?你能解决这个问题吗?也许对代码进行一些分析可能会帮助您找到瓶颈并加快程序的速度。
或者,如果您确实需要设置时间限制,则可能需要让您的主机启用此操作,或者升级您的包或切换主机提供商。
答案 1 :(得分:3)
当PHP以安全模式运行时,此功能无效。除了关闭安全模式或更改php.ini
中的时间限制外,没有其他解决方法答案 2 :(得分:0)
如果您确定它没有以安全模式运行......
http://php.net/manual/en/function.set-time-limit.php
“调用时,set_time_limit()
从零重新启动超时计数器。”
理论上,你可以反复call set_time_limit(0)
。
但是,您的托管服务提供商可能会阻止通过安全模式等
老实说,如果你需要自定义那种东西,我只是试着获得一个便宜的VPS来控制你的东西。