升级到Debian Jessie后:随机mod_fcgid错误

时间:2017-01-05 19:02:59

标签: php linux apache mod-fcgid

我正在拉我的头发: 从Debian wheezy升级到jessie后,我们有时会遇到Apache mod_fcgid错误。

当前设置:

  • Debian GNU / Linux 8.6(jessie)/ 3.16.0-4-amd64
  • Apache / 2.4.10(Debian)
  • PHP 5.6.29-0 + deb8u1

一些Apache网站运行正常,一些网站在多次重新加载后呈现出错误500。 Apache日志显示

  

[fcgid:warn] [pid 23714](104)通过对等方重置连接:[client 123.456.789.12:53191] mod_fcgid:从FastCGI服务器读取数据时出错

     

[fcgid:warn] [pid 23714](104)通过对等方重置连接:[client 123.456.789.12:53191] mod_fcgid:ap_pass_brigade在handle_request_ipc函数中失败

奇怪的是,这个错误只是偶尔发生。作为一个用户,我可以再次重新加载页面,一切都很好。 我知道我不是第一个遇到这个错误的人,到目前为止我尝试了几件事,但没有任何帮助。

我已经做了什么:

  • 在/etc/apache2/mods-available/fcgid.conf中设置FcgidOutputBufferSize 0 - >没有区别
  • 在包装器脚本中修改PHP_FCGI_MAX_REQUESTS=99999 - >没有区别
  • 在/etc/apache2/mods-available/fcgid.conf中设置FcgidMaxRequestsPerProcess 500 - >没有区别
  • 在/etc/apache2/mods-available/fcgid.conf中将FcgidMaxRequestsPerProcess增加到3600 - >没有区别

有什么想法吗? 提前谢谢。

马丁

2 个答案:

答案 0 :(得分:0)

我讨厌这样说,但是从一个Debian版本更新到另一个版本(例如:从Wheezy到Jessie)可能会很混乱并且并不总是完美无缺。有许多事情可能出错,并导致异常行为。

无论如何,我在这里做的(可能或不可行),首先我会查看更新前你在机器上的所有自定义配置文件和脚本,并调查它们是否仍然适用于新版本

接下来,我会确保我有一个包含存储库列表/etc/apt/sources.list,例如:

deb http://ftp.us.debian.org/debian/ jessie main contrib non-free
deb-src http://ftp.us.debian.org/debian/ jessie main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free
deb http://ftp.us.debian.org/debian/ jessie-updates main contrib non-free
deb-src http://ftp.us.debian.org/debian/ jessie-updates main contrib non-free
deb http://ftp.debian.org/debian jessie-backports main contrib non-free
deb-src http://ftp.debian.org/debian jessie-backports main contrib non-free

之后,运行apt-get update,然后运行以下代码 - 重要:以下代码可能会覆盖您的程序的自定义配置文件(如果有的话):

dpkg --force-confnew --configure -a
sleep 1
apt-get -y -o DPkg::options::="--force-confnew" install -f 
sleep 1
dpkg --force-confnew --configure -a
sleep 1
apt-get -y update
sleep 1
apt-get -y -o DPkg::options::="--force-confnew" dist-upgrade

之后,reboot并检查问题是否仍然存在。

下一步是删除(清除)apachephp包(如果可能的话),然后重新启动并重新安装它们。例如:

apt-get -y --purge remove apache2 php5
reboot
apt-get -y install apache2 php5

之后,reboot并检查问题是否仍然存在。

如果此时仍有问题,我会考虑从头开始重新安装整个操作系统。我将许多Debian机器从一个版本更新到另一个版本,并且在太多机器中存在太多问题,所以我不再这样做,而是从头开始安装操作系统。

我希望这有帮助,祝你好运。

答案 1 :(得分:0)

我能够发现问题仅存在于某些网站,特别是那些使用离子加载器与PHP结合的网站。我没有重新安装整个机器,而是将虚拟主机切换到PHP-FPM。

现在一切都运行良好&这样快。 嗯,这不是解决这个问题的真正解决方案,但至少是一个很好的解决方法......