我有一个用户在浏览器中运行的PHP进程,但是往往会花费相当长的时间 – 5分钟以上。 我们只是切换到一个新的服务器,当我们尝试运行脚本时,它始终在4分钟时间内完全超时,发送到500内部服务器错误页面,并在错误日志中输出以下错误:
超时等待CGI脚本的输出
脚本标题过早结束:cgi_wrapper
有趣的是,PHP过程似乎在后台完成。 如果我们从“500错误”页面导航并等待一下,脚本中所需的更改就会生效。
有没有什么办法来解决这个CGI的限制呢? 我已经阅读了FastCGI,但不知道如何在我们的服务器上安装(Apache,centOS,PHP 5.3)。
这不是解决这个问题的方法–HTTP并不是用来处理需要很长时间的操作的,而现在的PHPconfiguration听起来像是允许程序运行很长时间,这意味着你错误地configuration了它 – 它应该知道什么时候web服务器掉线并作出适当的响应。 甚至可以让浏览器保持连接足够长的时间,也许你可以不用担心代理服务器的问题,但是你可以使用每种工具不是为了使用而devise的。
解决这个问题的正确方法是从网页启动它, 但是运行是一个独立的进程组 ,并将代码添加到长时间运行的进程中,从而将状态写入某处,然后由浏览器触发的脚本进行轮询。