約1年前にPHPとMySQLのバージョンを上げるためにサーバを借り換えたのですが、今年の10月頃になってから「500 Internal Server Error」と出る機会が多くなってきました。coreserver/xrea 負荷観測のグラフを見ると、どうやらXREAのS312サーバ(s312.xrea.com)はXREAの中でも随一の負荷が高いサーバのようでした。
このサーバには、2週間後が本番であるEnsemble Poulhaudや、11月1日に機能を追加して好評なやる夫AA録2なども同居しており、ずっとこのサーバを使っていてもあまり良いことが起こらなそうなので、有料サービス(XREA+)の期限が切れる今月中に再移転することを決意しました。
移転先は、同じくデジロックが運営しているCORESERVER(コアサーバー)のCORE-Aにしました。費用は倍ほど(5,000円/年)とXREA+から比べておよそ倍ですが、Google AdSenseの収入でなんとか賄えそうになったし、ディスク容量も15GBと余裕があるのでこれに決定しました。他者も一応検討したけど、ここで特に問題無さそうなので。
今回の移行の手順は以下のとおりでした。
- 1. "サーバー間コピー"で旧サーバから新サーバへデータをコピー
-
新居であるコアサーバーの管理画面から、旧居のFTPユーザ名・パスワード・FTPサーバ名・リモートディレクトリ・ローカルディレクトリを入力して、データをコピーします。public_html以下のフォルダを一度にコピーしても良かったんですが、FTPソフトから何故か消せなくなったファイルがあったりするので、そこらへんは手をつけずにサブドメイン毎にちょこちょこコピーさせました。
ちなみにサーバー間コピーをしている最中はどうやらブラウザから新サーバを表示させようとしても500エラーが返ってくるようです。問題なく終了すれば無事に表示されるようになりますので、焦らず待ちましょう。
- 2. 新サーバのファイルのアクセス権を調整
-
wikiサイトのディレクトリを"777"などに変更します。
- 3. 旧サーバのデータベースのテーブルをエクスポート
-
前回はデータベースの「保存」「復元」が上手く行かなかったので、今回は最初からPhpMyAdminでテーブルを「エクスポート」する。で、今回は"gzip 形式"で圧縮させ、エンコーディング変換を行わないことにしてみた。
- 4. 新サーバへデータベースのテーブルをインポート
-
新たにテーブルを生成し、テーブル毎に復元していく。ファイルの文字セットも前回とは違い"utf8"とした。
- 5. P_BLOGのソースコードを編集
-
前回はEUC-JPで表示させるようにしていたので、このままでは確実に文字化けしてしまいます。P_BLOGのファイルを編集します。
- include/fnc_base.inc.php 63 行目
- SETUP/contents/default.inc.php 235 行目
- SETUP/contents/step3.inc.php 29行目
- var/vars-sample-rss/SETUP/DB_INSTALL.php 65 行目
上4つのファイルの各場所(mysql_connectしている次の行)に、前回は"eucjpms"を指定したところ、今回は以下のようにUTF-8を指定します。
mysql_query("SET NAMES utf8");
- 6. P_BLOGのSETUP画面へ
-
インストールの手順にしたがいセットアップを進める。
上記の作業は11日深夜に行ったため、けっこううろ覚えだったりします。実は5.と6.が逆だったかも。まあとにかくこの手順を踏んだらちゃんとMySQLコードも出力文字コードもUTF-8で問題なく表示されています。Julius Arnošt Vilém Fučíkというハーチェク付きの文字もちゃんと出ます。
そういえば、ISBN変換プラグインもいつの間にかに動作するようになりました。エラーが出力されたりしますが、ちゃんと表示されていたりします。動作するのはありがたいんですが、何故今は動くのだろう…、そういえばサーバ移転前から動いていたっけ、何故だろう。
ま、とにかくちゃんと移転することが出来ました。11月12日の記事が一気に5つもあるのは、DNS設定変更まで全てし終えて、ブログの表示も気分も軽くなったからです;-)。
上記は旧サーバ(s312x = s312.xrea.com)と新サーバ(s114c = s114.coreserver.jp)の混雑状況の比較です。これでも分かる通り、新サーバは快適に利用することが出来ます。というか旧サーバ、たまに10という値が出てる(正常なら100)…、いままでどれだけ混雑しているサーバを使っていたか、改めて気づかされました。