Apache-2.2
Apache2 + mod_fcgid + php 在從 Debian 擠壓升級到 wheezy 後停止工作
我已經將我的伺服器從 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。”
但似乎舊的指令名稱現在不再起作用了。這些變化對我有用,也許這對其他人有幫助。