サーバー引越し物語
野洲高校サッカー応援サイトの「こちょうのゆめ」のレスポンスが最近非常に遅くなってきていてサーバの移転を一ヶ月ほど前から検討していたのですが、昨日、ついに引越しすることが出来ました。
引越しする前よりレンタル料が7倍!になってしまうのですが、これから本格的なサッカーの季節に入るのでますますアクセスが増えるのは必至です。 まぁアクセスが増えるのは良いことなので致し方なしかな。。。。
Xoopsで作ったサイトの引越しは初めてだったので少し不安だったのですが、Xoopsはさすがによく考えられたCMS(Contents Management System)です。 Databaseの引越し+データをディレクトリ毎コピー+mainfile.php のパラメータ変更+ドメイン設定の変更 だけで比較的単純な作業だけで引越しすることが出来ました。
自分の憶えとして、簡単に手順を書いておこうと思います。 この方法は自分で適当に考えてやったことなので、もしかしたらもっと簡単で良い方法があるのかも知れません。
新しいサーバを申し込み使える状態にする。
私はSakura Internetをおすすめします。 料金は安いし、サーバは国内だし、サポートの対応もきちんとしているしとにかく安心感があります。

新サーバ上でXoopsをインストールする親ディレクトリを決めてディレクトリを作成する。
ルート上にそのままXoopsを入れても良いのですが、今回は複数のXoopsサイトを同一サーバに引越しする予定なので、それぞれにディレクトリを作りました。
たとえば、
/home/www/xxxxx/ がサーバに割り当てられた自分の素のアドレスだとすると、
こちょうのゆめ
/home/www/xxxxx/kocho/
Pianostyle
/home/www/xxxxx/pianostyle/
みたいな感じです。
元サーバのDBをエクスポート
Xoopsは MySQL というDBを使うので、DBを移行する必要があります。
元サーバの管理画面から PHPMyAdmin を使ってDBをローカルに一旦落とす
とりあえず、構造から中身まで全てを コピーする設定です。
コピーする形態は、SQL とします。 CSVとかにするとあとでややこしいんじゃないかな。
今回は圧縮はしませんでした。
新サーバにDBを作成
新サーバの管理画面にてDBを作成します
一応バージョンを確認しましたが、旧サーバが4.0.23 新サーバが 4.0.27 だったので多分大丈夫だろうと思って そのまま作成しました(結果OKでした)
新サーバと旧サーバのDBの名前は違っても問題ありません(あとでmainfile.phpを書き換えるから)
新サーバにデータをインポート
3.1でエクスポートしたデータを新サーバにインポート
新サーバの管理画面(PHPMyAdmin)でインポート処理を行います。
使うデータは、3.1 でエクスポートしたデータです。
ここで、そのデータを若干修正します。
3.1でエクスポートしたデータは SQL文がデータとともに組み込まれているのですが、最初にCREATE文でDBを作成する記述になっています、しかも旧サーバ上での名前でです。 4.1でDBは既に作成してあるので、その部分を一行 コメントアウトします。
保存したら、そのデータを使ってインポートを実行します。
エラー発生!
PHPMyAdminの画面にエラーメッセージが表示されました。
データの半ばほどで、文字化けが発生していて その影響でデータがINSERTできなかった模様。
仕方がないので、その文字化けしたINSERT文だけ削除。 そして、エラー発生よりも前のデータも削除して保存の上、インポートを再実行。
待つこと1分ぐらいで 約2MB(案外少ないんだな)のデータのインポートが終了しました。
一応、旧サーバと新サーバのDBをPHPMyAdminで見比べてみましたが、テーブルの数が新サーバの方がほんの少しだけ多い!? しかし、足りない訳ではなさそうだし、悩んでてもしょうがないので、このまま先に進むことにしました。
旧サーバのデータをディレクトリ毎ローカルにダウンロード
Xoopsが入っているディレクトリと画像などその他のデータが入っているディレクトリをまとめてダウンロード。
ディレクトリ構造は崩さずに というのがポイントです。 その際、Xoopsのcacheディレクトリにキャッシュデータが沢山入っていたので 前もってftpを使って削除しておきました。
今回はキャッシュだけで3,500もファイルがあったので残しておいたらダウンロード時間が倍かかっていたと思います。 移行対象のファイルは5000弱でした。 動画のデータは別の倉庫サーバに置いてあるので今回は移行対象外です。動画も移行となると全部で2.5GBですからかなり時間がかかったと思います。
新サーバへデータをアップロード
6でダウンロードしたデータを今度は新サーバへアップロード。
mainfile.phpを編集
赤字の部分を新DBに合わせて書き換えます。
(以下はあくまで例です)
// XOOPS Physical Path
// Physical path to your main XOOPS directory WITHOUT trailing slash
// Example: define(‘XOOPS_ROOT_PATH’, ‘/var/www/html/xps/html’);
define(‘XOOPS_ROOT_PATH’, ‘/home/www/xxxx/zzz’);
// XOOPS Virtual Path (URL)
// Virtual path to your main XOOPS directory WITHOUT trailing slash
// Example: define(‘XOOPS_URL’, ‘http://xxxx’);
define(‘XOOPS_URL’, ‘http://www.kocho-yume.com’);
// Database Username
// Your database user account on the host
define(‘XOOPS_DB_USER’, ‘xxxxx’);
// Database Password
// Password for your database user account
define(‘XOOPS_DB_PASS’, ‘xxxxx’);
// Database Name
// The name of database on the host. The installer will attempt to create the database if not exist
define(‘XOOPS_DB_NAME’, ‘xxxxx’);
編集したmainfile.phpをftpでアップロード。
パーミッションの変更
新サーバのディレクトリ及びファイルのパーミッションを変更します。
これはxoopsインストール時と同じです。
ドメインの移行処理
今回は、ドメインの移管は行わずDNS設定のみを変更して対応しました。
ドメイン所管元のDNS設定変更
ドメイン所管元の管理画面で、DNSを新サーバ指定のものに変更する。
新サーバ側のドメイン設定
新サーバの管理画面でドメインを追加する。
エイリアス先のディレクトリ設定を間違わないように!(今回間違えてしまいました)
終わってから2時間ほど待ちます。
移行完了をチェック
対象URLで新サーバにDNSが移っているか確認する。 移っていなくても旧サーバで動いた画面が出てくるのでわかり難いです。 そこで、DBをエクスポートした後に、旧サーバのデータを少しだけ変更しておきます。例えばトップ画面のWelcom Messageを変えておくとか。。 変更前の画面が出れば移行が完了したということになります。
あとは、ひととおりの機能が行えるかをチェックします。
今回は、慣れていなかったこともあって丸々1日かかってしまいました。
レンタル料金を奮発しただけあって 画面の反応がキビキビしていて気持ちが良いです。
これで 2万View/日 にも対応可能になったかな。。。
大幅に増えたレンタル料をどう賄うのかについては 今後アフィリエイトの効果的運用でなんとかしたいと思っています。
あっ、ピアノスタイルは当分このままです。
メッセージ