mod_fcgid读取数据超时-脚本头过早结束


mod_fcgid read data timeout - Premature end of script headers

我的一个Plesk用户的网站无法访问。服务器报告一个500内部服务器错误,该用户的error_log显示一堆

[warn] mod_fcgid: read data timeout in 60 seconds
[error] Premature end of script headers: index.php

DocumentRoot包含一个正常的WordPress安装。其他网站运行相同的WP版本,使用相同的数据库服务器和PHP+扩展运行良好。一个<?php phpinfo(); ?>运行良好。从cli调用php index.php返回网页,但对于空闲的Xeon E5-2620服务器w/64GB RAM

是否有已知的问题?如何进一步调试?

更多系统信息:

    PHP 5.6.24(也尝试过5.4)
  • Plesk 12.5.30

编辑:问题间歇性发生。现在,没有500错误返回,网站加载正常(有点慢)。我增加了memory_limit,只是为了确保它不是配置限制

您可以尝试像这里描述的那样增加FcgidIOTimeout https://kb.plesk.com/en/121251

Since Plesk 11.5, "FcgidIOTimeout" parameter is set to the same value as max_execution_time php parameter in domain's PHP settings

你也可以尝试任何PHP-FPM处理程序,而不是FastCGI,因为mod_fcgid有很多无法避免的内部性能限制

这个问题是由一些脚本中的恶意file_get_contents引起的。

我查看了第一次出现错误消息的错误日志,并找到了一个恰好在错误消息第一次出现时创建的文件-仅在2年前…WordPress网站被黑了?可疑PHP文件

所以我删除了恶意软件(详细写在https://talk.plesk.com/threads/debugging-premature-end-of-script-headers.338956/),重新启动服务器,错误现在消失了。

技术细节:出现错误是因为分发恶意软件的服务器离线。file_get_contents("http..."超时,本地脚本失败,返回错误消息