今日、このブログを運用している格安レンタルサーバー ミニバードの運用元ネットオウルより、以下のようなタイトルのメールが届きました。
【ネットオウル】『ミニバード』『ファイアバード』『クローバー』『ウェブクロウ(PHPオプション)』『ウェブクロウプラス』『スターサーバープラス』における「PHP 5.6」導入とPHP推奨バージョン変更のお知らせ
PHPバージョンアップ
メールを読んでみると、ミニバードで新たにPHP 5.6が使用可能になったとのこと。
現在使用しているPHP 5.5で特に不満はなかったのですが、
PHP 5.6 では、従来のPHPバージョンに比べて処理速度の向上し、メモリ消費量抑制が見込まれます。
ということでしたので、バージョンアップしてみることにしました。
WordPress全ページアクセス不能に
ところがいざサーバー管理ツールでPHPのバージョンを5.6に切り替えてみたところ、いきなりブログの全ページがアクセス不能になってしまいました。
どのページにアクセスしても、以下のようなエラーメッセージが出てきます。
Not Found The requested URL 〜 was not found on this server.
これはいわゆる「404 Not Found」と言われるエラーで、定義通りに捉えるとアクセスしようとしたサーバー上のファイルが見つからなかったということになります。
サーバー管理ツールでPHPを5.5に戻してみましたが、現象は変わりませんでした。
PHPのバージョンを変えたことは以前にもありましたがその時には何の問題も無く、今回このような状況になってしまって非常に焦りました。
とりあえずネットオウルの問い合わせ窓口に状況を伝えて調査を依頼します。
調査と対処
しかし問い合わせするのは今回が初めてで、どれくらいでレスポンスがあるのかもよくわかりませんので、とりあえず自力でも調査を始めました。
エラー内容は「ファイルが見つからない」ですが、さすがにPHPのバージョンを変えたくらいでサーバー内の全ファイルが無くなるとは思えませんので、何か設定がおかしくなった可能性大です。
「404 Not Found」が出るということはHTTPサーバー自体は生きていますので、まず.htaccessファイルからチェックしてみると、これがいきなりビンゴでした。
.htaccessファイルの中身が、以下のような非常にあっさりした内容に成り果てていました。
#####phpversion##### AddHandler x-httpd-php5.5 .php .phps #####end:phpversion##### #####fastcgi##### AddHandler fcgid-script .php .phps FCGIWrapper "/home/streamline/streamline-jp.net/php/php-cgi" .php FCGIWrapper "/home/streamline/streamline-jp.net/php/php-cgi" .phps #####end:fastcgi#####
WordPressが稼働している状況でこんな簡単な内容であるはずはありません。
幸い数ヶ月前に.htaccessファイルを修正した時のバックアップファイルが残っていましたので、その内容に書き戻したところWordPressが動き出しました。
結局PHPバージョン切り替え時の何らかの処理で.htaccessファイルの内容が書き換えられたことが原因だったようです。
あとはネットオウルからの連絡待ち
ちなみにネットオウルからのレスポンスは思ったより速く、最初の問い合わせから20〜30分後には返信メールが来ました。
しかしその返信では上記の復旧作業をした後の状況を見たようで、「アクセスできているようですが」という内容でした。
再度上記の内容を伝えたところ、調査のためにPHPバージョンアップ前後の.htaccessファイルの内容を送ってくれという連絡が来ました。
PHPバージョンアップ直前の情報は書き換えられてしまって残っていませんでしたが、わかる限りの情報をお伝えして現在は返信を待っている状況です。
というわけで現状はまだ根本的な原因がはっきりしていませんが、とりあえずダウン時間 1時間程度でブログが復旧できましたので、一安心しているところです。
追記) 2015/12/08
その後ネットオウルさんより連絡があり、やはりPHP 5.6へのバージョンアップ時に.htaccessの記述が消えてしまう問題があったようです。すでに問題は解決しているが、消えてしまった.htaccessの復元は困難とのこと。
私も最新の.htaccessが消えてしまいましたが、少し前のバックアップがあってブログ自体は復旧できました。とんだテスターになってしまいましたが、多くの人が被害を受ける前に解決に至ったのは良かったです。
なお、その後再度PHP 5.6へのバージョンアップにトライし、今度は問題なく成功しました。
やはりシステム中核部に変更を加える時には、重要な設定ファイルはバックアップを取っておいた方が良さそうですね。