Apache和/或PHP超时-难倒了。
我有一个PHP脚本,当通过浏览器调用时,它会在60秒后超时。我修改了httpd.conf并将Timeout指令设置为300。我修改了所有PHP超时设置,使其延长到60秒以上。当我从命令行运行脚本时,它将完成。当我每次在60秒后通过浏览器执行时,POOF,timeout 我还检查了.htaccess文件中是否存在超时指令。那里什么都没有。。我完全被难住了 我还在PHP代码中强制设置时间限制(0)Apache和/或PHP超时-难倒了。,php,linux,apache,timeout,Php,Linux,Apache,Timeout,我有一个PHP脚本,当通过浏览器调用时,它会在60秒后超时。我修改了httpd.conf并将Timeout指令设置为300。我修改了所有PHP超时设置,使其延长到60秒以上。当我从命令行运行脚本时,它将完成。当我每次在60秒后通过浏览器执行时,POOF,timeout 我还检查了.htaccess文件中是否存在超时指令。那里什么都没有。。我完全被难住了 我还在PHP代码中强制设置时间限制(0) 我已经挖掘和测试了一个星期,已经用尽了我的知识。非常感谢您的帮助 有很多地方可以设置最大时间。如果您使
我已经挖掘和测试了一个星期,已经用尽了我的知识。非常感谢您的帮助 有很多地方可以设置最大时间。如果您使用的是FastCGI,尤其是Virtualmin之类的软件,则会有一组额外的“最大执行时间”(max_execution_time)设置对您隐藏,除非您具有访问权限 简而言之,您需要找出所有的位置,给定PHP堆栈设置,可以有一个执行时间限制器,设置这些值,重新启动服务器,然后执行
set_time_limit(0);
当然可以
没有关于您的具体设置的更多信息,并且考虑到我在处理PHP执行时间挂起方面的经验,我只能告诉您这些。您需要确保在PHP和Apache中都设置了更高的超时限制 如果在php.ini中设置了较高的max_execution_time,则脚本不会超时,但是,如果没有定期将脚本结果的输出刷新到浏览器,则脚本可能会由于网络超时而在Apache端超时 在httpd.conf中,执行以下操作:
Timeout 216000
在php.ini中,执行以下操作:
max_execution_time = 0
(将其设置为0使其永远不会超时,就像使用CLI(命令行)脚本一样)
确保完成后重新启动Apache!在大多数linux发行版上,您可以通过发出以下命令(以root用户身份)来执行此操作:
希望这有帮助 我正在做一些有点慢的事情,在我的循环中我重新声明了
set\u time\u limit(0)
。。出于某种原因,这使得脚本无法在此之后超时-这很奇怪。请确保这两种情况都使用完全相同的php.ini配置?此外,如果使用安全模式,则无法更改max_execution_timeoutputphpinfo()
,并在设置时间限制BTW后查看max_execution_time
是什么,请注意,根据下面的建议对脚本使用set_time_limit(0)仅在php环境未处于安全模式时有效。您可以通过使用phpinfo()运行脚本来检查php变量;在线上。
service httpd restart