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+Extensions 运行 没问题。 A <?php phpinfo(); ?> 运行 也很好。从 cli returns 网页调用 php index.php,但对于 idle Xeon E5-2620 Server w/ 64GB RAM

来说有点太慢了

是否有任何已知问题?我该如何进一步调试?

更多系统信息:

编辑:问题间歇性发生。现在,没有返回 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 年前...

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

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