サーバーをDebiansqueezeからDebianwheezyに更新しました。このサーバーには、mod_fcgidを介してphpを実行するいくつかのApache2仮想ホストがあります(私もmod_suexecを使用していますが、これは問題ではないはずです)。更新後、すべてのphpサイトが機能しなくなり、phpを実行しているサイトをリクエストすると、Apache2はphpソースコードを配信します。すべてのログファイル
警告さえも、エラーを思い付かなかった。すべてのneccesarryモジュールがインストールおよびロードされます。私は何の努力もせずに、今何時間も可能な解決策を探しました。これがサンプルの仮想ホストファイルです(「機密」データが置き換えられ、ユーザー/グループとドメイン):
<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 でもこの質問をしましたが、これで問題ないことを願っています。
今、私は自分で解決策に出くわしました。この問題は、vhost構成で使用されるディレクティブを変更したmod_fcgidの更新が原因で発生します。変化を見ることができました ここ (これは私が偶然見つけたものです)。
ディレクティブ
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スクリプトを使用できます。 build /fixconf.sed。」
しかし、古いディレクティブ名は今のところ機能しなくなったようです。変更は私のためにトリックをしました、多分これは他の誰かを助けるでしょう。