【发布时间】:2015-08-15 03:51:18
【问题描述】:
事情是,用户单击一个按钮,它会启动一个 AJAX 请求(不是那么重要)。 这个 ajax 请求调用一个 php 脚本,该脚本下载并随后上传一个大文件(php 脚本应该运行大约 4 分钟);很自然,用户“等待”ajax 响应告诉他一切都好。
但是,在 130 秒后,此 ajax 请求会返回带有状态代码“500 Internal server error”的响应。 然而,没有。 2;在后端,php 脚本仍在运行(我从它创建的日志记录中知道这一点)。
哪里有问题?
- max_execution_time 不影响它,因为 php 脚本仍在运行
- 在本地主机上,一切正常,这只发生在我们的生产服务器上
- memory_limit 不影响它,(php 脚本仍在运行)
- jquery ajax timeout 不影响(默认没有超时,我也设置了timeout 300秒,但是没有效果:()
我欢迎任何想法,如何解决这个问题
编辑: 由 fastCGI 空闲超时引起的
【问题讨论】:
-
如果可能,我会更改您使用的模式。将请求开放这么长时间并不是一个好主意。
-
感谢查看 fastCGI 超时的提示。奇怪的是,即使 FastCGI 超时(活动和请求)设置为 600 秒,我的服务器也超时了大约 800~900 秒。对我来说,提高请求超时值解决了我的长 PHP 脚本处于循环中等待另一个进程完成的问题。