【问题标题】:mod_fcgid: read data timeout in 31 secondsmod_fcgid:31秒内读取数据超时
【发布时间】:2015-03-07 13:53:03
【问题描述】:

如下所述,我遇到了 2 个错误。

[Fri Jan 09 04:10:23 2015] [warn] [client 188.165.15.22] mod_fcgid:读取数据超时 31 秒 [Fri Jan 09 04:10:23 2015] [error] [client 188.165.15.22] 脚本头过早结束:index.php

我也检查了这个Premature end of script headers: index.php, mod_fcgid: read data timeout in 61 seconds。但是我没有像 /etc/httpd/conf.d/fcgid.conf 这样的文件可以编辑。

有人知道吗?

我认为 php 脚本可能没有任何问题,因为它在过去 1 年中一直运行良好。现在它突然停止工作了。

我的 Apache 版本是 2.2.22,PHP 版本是 5.3.10-1ubuntu3.13

fcgid.conf 的内容:

<IfModule mod_fcgid.c> 
   AddHandler fcgid-script .fcgi 
   FcgidConnectTimeout 20 
   FcgidIOTimeout 2000 
</IfModule>

【问题讨论】:

标签: php apache


【解决方案1】:

您可以按照其他帖子中的说明增加超时时间:

FcgidIOTimeout 600

但由于你是在 Ubuntu 上,你会在这里找到相关的配置文件:

/etc/apache2/mods-available/fcgid.conf

【讨论】:

  • 是的,我找到了该文件并通过添加“FcgidIOTimeout 600”对其进行了编辑,但它仍然无法正常工作。我也试过给“FcgidIOTimeout 2000”,但没有用。我也重启了apache服务器。
  • 现在fcgid.conf的内容是 AddHandler fcgid-script .fcgi FcgidConnectTimeout 20 FcgidIOTimeout 2000
  • 如果错误仍然是read data timeout in 31 seconds ,那么它看起来不像FcgidIOTimeout 2000被拾取;你能 grep 所有 Apache 配置文件,看看你是否在其他地方覆盖它:grep -r "FcgidIOTimeout" /etc/apache2/
  • 我做了 grep 但它没有给我任何结果。
  • 也检查您的个人站点配置,例如:/etc/apache2/sites-available/domain.com.au.conf
【解决方案2】:

对我来说是 41 秒,它来自站点的 httpd.conf 文件

# /etc/apache2/sites-available/website.com.conf
<VirtualHost ipv4:80 [ipv6]:80>
  IPCCommTimeout 600 #increased from 41
</VirtualHost>

【讨论】:

    【解决方案3】:

    如果您使用的是 FcgidCmdOptions,请参阅此问题的答案 - mod_fcgid read timeout from pipe, end of script output before headers, multiple versions of PHP。简而言之,FcgidCmdOptions 中指定的程序会忽略全局选项,因此必须直接在此指令中配置所有超时。

    【讨论】:

    • 感谢@BhargavRao 指出这一点,我已经更新了回复。
    • 不客气。我已删除我的评论并赞成您的回答。祝你好运,下次发布答案时要小心
    猜你喜欢
    • 2012-03-18
    • 2017-10-26
    • 1970-01-01
    • 2013-01-07
    • 2016-12-22
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 2014-10-27
    相关资源
    最近更新 更多