Apache-2.2

Apache2 + mod_fcgid + php 在從 Debian 擠壓升級到 wheezy 後停止工作

  • February 13, 2014

我已經將我的伺服器從 Debian 擠壓更新到了 Debian wheezy。在這台伺服器上有幾個通過 mod_fcgid 執行 php 的 apache2 vhost(我也在使用 mod_suexec,但這應該不是問題)。更新後,我所有的 php 站點都不再工作,如果我請求執行 php 的站點,apache2 會提供 php 原始碼。我所有的日誌文件

  • apache2/error.log
  • apache2/access.log
  • apache2/suexec.log
  • 和虛擬主機錯誤/訪問日誌

沒有出現任何錯誤,甚至沒有警告。所有必需的模組都已安裝並載入。我花了幾個小時尋找可能的解決方案,沒有任何努力。這是一個範例 vhost 文件(“敏感”數據被替換,使用者/組和域):

<VirtualHost *:80>
   ServerName example.com
   SuexecUserGroup john-doe john-doe
   AddHandler fcgid-script .php
   DocumentRoot "/var/www/example.com/data"
   DirectoryIndex index.php index.html

   <Directory />
       Options FollowSymLinks
       AllowOverride None
   </Directory>
   <Directory "/var/www/example.com/data">
       Options Indexes MultiViews FollowSymLinks +ExecCGI
       FCGIWrapper /var/www/example.com/php-fcgi/php-fcgi-starter .php
       Order allow,deny
       allow from all
       AllowOverride All
   </Directory>
   ErrorLog /var/www/example.com/logs/error.log
   LogLevel warn
   CustomLog /var/www/example.com/logs/access.log combined
   ServerSignature Off
</VirtualHost>

有什麼想法嗎?我也在superuser.com上問過這個問題,希望沒問題。

現在我自己偶然發現了解決方案。該問題是由 mod_fcgid 的更新引起的,該更新更改了 vhost 配置中使用的指令。這些變化可以在這裡看到(這是我偶然發現的)。

該指令

FCGIWrapper /var/www/example.com/php-fcgi/php-fcgi-starter .php

必須改為

FcgidWrapper /var/www/example.com/php-fcgi/php-fcgi-starter .php

文件說

“所有指令都已重命名,以便使用通用前綴“Fcgid”。指令名稱中的下劃線已被消除,有利於 CamelCase。舊指令名稱仍然有效,但已棄用。要修復您的配置,您可以使用 sed 腳本建構/fixconf.sed。”

但似乎舊的指令名稱現在不再起作用了。這些變化對我有用,也許這對其他人有幫助。

引用自:https://serverfault.com/questions/575215