2014/12から、私が借りているレンタルサーバのxreaで、大規模なサーバのアップデートが始まった。
XREAサーバー Apache/PHPのバージョンアップメンテナンスについて | 無料ウェブサービス XREA.COM
以前の記事で告知していた通り、予告は2012年ごろから。2012年5月には全サーバを終えるという話だったはずなので、まあ3年近くかかったわけか。
私も気が付いたのは2015/2月ごろ。サイトが表示されなくなって初めて気が付いた。
さすがにこのままでは問題があるので、もとに戻す作業を行うことにした。
サーバの復旧手順
まずは、xreaのサポートフォーラムで書いてある方法によって、復旧を試みる。(mysqlを使用している場合)
【公式】XREAサーバー:最新の環境へのアップデートメンテナンス関連
- ftpソフトなどでサーバに接続。「DB_BACKUP_XREA_UPGRADE」フォルダに移動。
- フォルダ内にある「mysql_*.dump」(*は、データベースのユーザ名)をダウンロード
- ブラウザでxreaのサーバ管理画面(CONTROL PANEL)にログイン
- 管理メニューのデータベースをクリックし、MySQLの追加・編集で、データベースを作成
- データベース作成後、ftpソフトなどでサーバに再接続。ダウンロードした「mysql_*.dump」ファイルを「mysql.dump」ファイルに名前を変更し、サーバのルートにアップロード
- ブラウザで開いているxreaのデータベース画面から、「復元」を実行
メンテ前のデータベースのバージョンが新しく、保存されている文字コードがutf8であれば、この手順で問題なくサイトが表示されるようになる。
ファイルが大きい場合には時間がかかることがあるが、数分待って状況が変わらないならばおそらく失敗。
失敗した場合には、phpMyAdminから復旧を試みる。
昔のサーバなどでphpMyAdminも古い場合には、phpMyAdminを削除(サーバの/log/phpMyAdminのファイルをすべて削除)して、管理画面から再度インストールしたほうが良い。
複数のデータベースを運用する場合には、こちらを参考に。
XREAで複数のデータベースをPhpMyAdminで管理するための「config.inc.php」設定方法!
phpMyAdminを用いたデータベース復旧方法
- phpMyAdminで、対象のデータベースにログイン
- テーブルの生成状況を確認し、中途半端にテーブルができている場合にはテーブルを削除
- メニューの「インポート」から、先ほどのmysql.dumpファイルをインポート
- 数秒~数分でエラーメッセージが表示された場合は、mysql.dumpファイルをテキストエディタなどで開き、エラーの発生した行の直前までを削除。(そこまでは正常に実行されているはず)
- エラーの発生した行を修正し、再度インポート
これを繰り返せば、データベースは復旧される。
その他の修正
データベースが復旧しても、もとのページが正常に表示されない場合がある。その場合は、
- .htaccessファイルの内容を確認。ほかのディレクトリ内のファイルも同様
- phpやcgiを使用しているページの場合には、エラー表示を有効にしメッセージを確認
MySQLとPHPの大幅変更なので、動作しないcgiやphpは多々ありますが、復旧には1つ1つつぶしていくしかないかと。
ただ、今までサーバの仕様が古くてアップデートやインストールができなかったcgiなんかも使用できるので、この際アップデートしてしまうのがよろしいかと。
その作業により、運用中の6サイト中4サイトは問題なく復帰。これらはデータベースが比較的新しく、文字コードもUTF8(アップデート後のデフォルト文字コードはUTF8)だったので。
文字コードがEUCだった2サイトは、また後日あらためて。
コメント