【问题标题】:I get 500 Internal Server Error after 30 seconds of running a script运行脚本 30 秒后出现 500 内部服务器错误
【发布时间】:2013-11-22 13:33:34
【问题描述】:

生产服务器具有 CentOS 6.4 和 Plesk 11.0.9。它是一个专用服务器。

服务器配置:
* max_execution_time 在 Plesk 中设置为 500,它在 phpinfo 中正确显示

问题:
* 运行任何脚本 30 秒后,我得到 500 Internal Server Error

有什么办法可以解决这个问题吗?

乐:
* 我想要执行此操作的脚本从远程位置将文件下载到用户的浏览器。完成操作可能需要几个小时(对于非常慢的互联网连接客户端)。我真的需要这个。还有一件事,用户不能看到源网址。

【问题讨论】:

  • 检查你的错误日志,看看它失败的确切原因
  • 如果是查询数据库,也可能是数据库请求超时。作为旁注,我知道这非常诱人,而且所有“尤其是在上传文件时”,但是如果您的 Web 脚本运行时间超过 30 秒,那么可能应该是优化是否被替换为非网络脚本...或者至少应该仅使用此脚本更改超时扩展,而不是针对您的整个站点。
  • @Bartdude:我已经编辑了问题,让您知道脚本的作用
  • 根据您下载文件的方式,您可能会达到内存限制。
  • 好吧,正如我所说,您可能没有按照应有的方式进行操作。您绝对应该将下载任务委托给非 Web 脚本,并在文件准备好供他下载时警告用户(通过邮件或其他方式)。特别是如果它可能需要几个小时......

标签: php plesk


【解决方案1】:

我认为你运行的是 Fast CGI。 CGI 进程有一个最大的执行时间。在 fastcgi 中,它的 idle-timeout。之后,您会收到 500 错误,因为当时后端没有响应。

我不知道你用的是哪个模块。但通常您可以在配置中设置 idle-timeout

mod_fastcgi idle timeout not work

【讨论】:

  • 服务器以Fast CGI 运行。我将它切换到Apache,现在它似乎工作了。像sleep(70); phpinfo(); 这样的简单脚本现在会返回输出。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-13
  • 2019-07-19
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多