xreaの大規模サーバアップデート

Webネタ・サイト更新

 2014/12から、私が借りているレンタルサーバのxreaで、大規模なサーバのアップデートが始まった。
XREAサーバー Apache/PHPのバージョンアップメンテナンスについて | 無料ウェブサービス XREA.COM
 以前の記事で告知していた通り、予告は2012年ごろから。2012年5月には全サーバを終えるという話だったはずなので、まあ3年近くかかったわけか。

xrea内でのサーバの移転
 私の借りているレンタルサーバxreaでは、大規模なサーバのアップデートが行われている。2つのサイトではそれが終了したのだけれど、もうあと4つのサイトはそれが5月の中旬以降になるようだ。  それらのサイトの入っているサーバは、最近どうもと...

 私も気が付いたのは2015/2月ごろ。サイトが表示されなくなって初めて気が付いた。
 さすがにこのままでは問題があるので、もとに戻す作業を行うことにした。

サーバの復旧手順

 まずは、xreaのサポートフォーラムで書いてある方法によって、復旧を試みる。(mysqlを使用している場合)
【公式】XREAサーバー:最新の環境へのアップデートメンテナンス関連

  1. ftpソフトなどでサーバに接続。「DB_BACKUP_XREA_UPGRADE」フォルダに移動。
  2. フォルダ内にある「mysql_*.dump」(*は、データベースのユーザ名)をダウンロード
  3. ブラウザでxreaのサーバ管理画面(CONTROL PANEL)にログイン
  4. 管理メニューのデータベースをクリックし、MySQLの追加・編集で、データベースを作成
  5. データベース作成後、ftpソフトなどでサーバに再接続。ダウンロードした「mysql_*.dump」ファイルを「mysql.dump」ファイルに名前を変更し、サーバのルートにアップロード
  6. ブラウザで開いているxreaのデータベース画面から、「復元」を実行

 メンテ前のデータベースのバージョンが新しく、保存されている文字コードがutf8であれば、この手順で問題なくサイトが表示されるようになる。


 ファイルが大きい場合には時間がかかることがあるが、数分待って状況が変わらないならばおそらく失敗。
 失敗した場合には、phpMyAdminから復旧を試みる。
 昔のサーバなどでphpMyAdminも古い場合には、phpMyAdminを削除(サーバの/log/phpMyAdminのファイルをすべて削除)して、管理画面から再度インストールしたほうが良い。
 複数のデータベースを運用する場合には、こちらを参考に。
XREAで複数のデータベースをPhpMyAdminで管理するための「config.inc.php」設定方法!

phpMyAdminを用いたデータベース復旧方法

  1. phpMyAdminで、対象のデータベースにログイン
  2. テーブルの生成状況を確認し、中途半端にテーブルができている場合にはテーブルを削除
  3. メニューの「インポート」から、先ほどのmysql.dumpファイルをインポート
  4. 数秒~数分でエラーメッセージが表示された場合は、mysql.dumpファイルをテキストエディタなどで開き、エラーの発生した行の直前までを削除。(そこまでは正常に実行されているはず)
  5. エラーの発生した行を修正し、再度インポート

 これを繰り返せば、データベースは復旧される。

その他の修正

 データベースが復旧しても、もとのページが正常に表示されない場合がある。その場合は、

  1. .htaccessファイルの内容を確認。ほかのディレクトリ内のファイルも同様
  2. phpやcgiを使用しているページの場合には、エラー表示を有効にしメッセージを確認

 MySQLとPHPの大幅変更なので、動作しないcgiやphpは多々ありますが、復旧には1つ1つつぶしていくしかないかと。
 ただ、今までサーバの仕様が古くてアップデートやインストールができなかったcgiなんかも使用できるので、この際アップデートしてしまうのがよろしいかと。
 その作業により、運用中の6サイト中4サイトは問題なく復帰。これらはデータベースが比較的新しく、文字コードもUTF8(アップデート後のデフォルト文字コードはUTF8)だったので。
 文字コードがEUCだった2サイトは、また後日あらためて。

サクラキャンドル

 都内在住。理系高校理系大学を経て、電機関係の会社でリーマンやってます。
 仕事内容とサイトの内容はほとんど関係がなく、趣味の延長線上でいろいろと紹介します。

サクラキャンドルをフォローする
スポンサーリンク
農場主の日常

コメント

タイトルとURLをコピーしました