WordPress: 3.6にアップデートしようとしてハマる

WordPress 3.6 がリリースされたということで、ワードプレスダッシュボードのトップに「更新してください」メッセージがしつこく出るようになりました。日本語版もリリースされたため、私が管理しているワードプレス運用サイトをアップデートしようと作業を開始。

2サイトは問題なく更新出来たものの、3サイト目でなぜか更新中に以下のメッセージが表示されて更新に失敗してしまいます。

Maximum execution time of 30 seconds exceeded

3サイト目というのは2サイト目と同じサーバーでURLが異なるだけなので同じコンフィグレーションで動いているはずです。しかも、昨年末上記エラー対策のために、.htaccess に「php_value max_execution_time 120」を記述したはず。

そんな馬鹿な!ということで .htaccess を開いてみたら・・・・・・・書き忘れていました。(苦笑)
では、記述済みサイトから一行コピーして、wordpress 用にカスタマイズされている .htaccess に書き足せばいいじゃないか と記述したら、今度はサイト自体へアクセス不能になってしまいました。

<.htaccess>

php_value max_execution_time 120

サイトの表示は、こんな感じ。

Server error!

サーバ内部で障害が発生し、 リクエストに応えることができませんでした。 サーバが過負荷であるか、 CGI スクリプトにエラーがあります。

サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。

Error 500

www.lifewithunix.jp
Mon Aug 5 18:05:21 2013
Apache/2.2.25 (FreeBSD) PHP/5.4.17 mod_ssl/2.2.25 OpenSSL/1.0.1e DAV/2

 

エラーログファイルを見てみたら、「.htaccess: php_value not allowed here」という行が残っています。URLによって問題なく動く .htaccess と動かない .htaccess が発生しているわけで、これには困りました。

落ち着いて考えてみると、ディレクトリごとの動作を決める .htaccess に記述できるところとエラーになるところがあるわけですから、もっと上位(httpd.conf)の設定ファイルで override が禁止されているのかもしれません。
探してみたところ、見つかりました。

AllowOverride FileInfo AuthConfig Limit Indexes

この行に何かを追加すれば php_value 行が有効になるのでしょうが、そのコマンドがわからない。検索してみると、単純に All にすれば解決したと書いてあるページを見つけたので、とりあえず原因を切り分けるために All へ変更して Apache を再起動してみました。

AllowOverride All

結果は、 30秒でタイムアウトする現象は発生しなくなり、ワードプレスサイトの更新成功。システム側の記述に原因があったのね~。ただ、この場所はあまり変更したくない部分なので、Allのままにするか適切なコマンドを見つけて書き直すか、更新時以外は元に戻すか、考えないといけません。

コメントを残す