Apache 2.2 で運用していたサーバーを、先日、Apache2.4 に上げたところですが、運用しているサーバーによっては 「Internal Server Error 500」が表示され、エラーログファイルには
/home/(web_user)/public_html/.htaccess: php_value not allowed here
と記録される問題が発生しました。
対象となるコマンドは、ユーザー毎公開ディレクトリ用 .htaccess に記述されている、
php_value max_execution_time 120
という一文。
これは、WordPress に大きめのドキュメントをアップロードしたり、プラグインなどの更新を行う場合、サーバーに負荷が掛かりPHPのタイムアウトまでに処理が終了しないことを回避するためのものです。この行をコメントアウトすればエラーは出なくなるのでしょうが、それは無理。
あまりアクセスしないURLだったため今まで気づかなかったのですが、Apache2.2の時代には問題はなくApache2.4 に更新した後発生し始めたようで、Apache2.4による仕様変更と思われます。
検索エンジンで検索してみると同様のエラーが発生しているユーザーは多いようで、メインの httpd.conf の記述を変更したあと、.htaccess 内に php_value を追加記述できるようにしている人が多いように感じました。
私のサーバーの場合は、PHP を使用するのはWordPressだけなので httpd-userdir.conf に直接記述を移動することにしました。
<Directory "/home/*/public_html"> 省略 php_value max_execution_time 120 </Directory>
これで解決。