guilz.org を含め、いくつかのサイトを さくらのVPS 2G (大阪) から、GMOクラウドVPS マイクロ に移転しました。
サイト丸ごと移転の際、ちょっとつまずいたりしたことを含めて、作業メモとして残しておきます。(今後も同じようなサーバー移転するかもだし)
あ、今のところは、さくらのVPS 2G (大阪) より GMOクラウドVPS マイクロ の方が快適かなーという印象。traceroute すると、さくらの方がGMOより近いんだけど、契約ユーザー数の違いとかかな。あと体感での話だし、実際には差はあまりないかもだけど。
WebサイトのデータとMySQLのデータを、移転元のサイトから取得します。例えば以下のような感じで。
# cd /home/user # tar -jcf webdata.tar.bz2 public_html
# mysqldump -u root -p -x --all-databases > dball.sql
自分の場合、/etc と /var/log の内容も念のため取得します。/etc を取得する理由としては、全く同じ設定は使わないにしろ、今まで使っていた設定をベースに設定を変える方が作業が早いので。/var/log は念のためにログを保存するという用途です。
# cd / # tar -jcf /root/etcall.tar.bz2 etc # cd /var # tar -jcf /root/logall.tar.bz2 log
こうして作成したデータは、SFTPなり他の方法でクライアントマシン、または移転先のサーバーに送っておきます。
移転元でのパーミッション・所有ユーザーを移転先でも引き継ぎたいので、事前に移転元にあったユーザーを作成しておきます。
# adduser user # passwd user
オプションをつけて、ファイルを展開します。どこに解凍してもいいとは思いますが、空のディレクトリで作業した方が間違いがなくていいかもしれません。(以下の例では、移転元と同じ場所にファイルが解凍されるように作業しています)
# cd /home/user # tar --same-owner -xjpf webdata.tar.bz2
MySQLのデータも、全て移転元と同じになるよう移行します。
# mysql -u root -p < dball.sql
この場合、MySQLのrootパスワードも同じように展開されるので、移転元と別のrootパスワードを設定する場合は、再度入れ直します。
# mysql -u root -p mysql> set PASSWORD for root@localhost=PASSWORD('新しいパスワード'); mysql> set PASSWORD for root@127.0.0.1=PASSWORD('新しいパスワード');
バックアップとして作成した、/etc 以下の設定ファイルを参考にしながら、各サーバーの設定を行います。/ で展開するとまずいので、以下のように別ディレクトリに解凍しておきます。
# mkdir /root/backup # cd /root/backup # tar --same-owner -xjpf etcall.tar.bz2
自分の場合、httpd などは設定ファイルをそのまま持っていってしまい、エラーが出たら対応するという形で設定したりします。ほぼ同じ環境を事前に作り込んでから作業を行うため問題が出ることは少ないのですが、相違が大きいサーバー間での作業の場合は、このような手法は採らない方がいいでしょう。
# mv /etc/httpd /etc/httpd_orig # cp -a /root/backup/etc/httpd /etc # /etc/init.d/httpd start
だいたい以上の手順で、データとMySQLデータベースの内容は、そのまま新サーバーに持ってくることができますが、WordPressの一部キャッシュプラグイン(確認したのはQuickCache) を利用していると、なぜか データベース接続確立エラー が出て、サイトが見られなくなるという現象が起きました。
その場合、wp-content/advanced-cache.php を削除してやればアクセス可能になるので、その後管理画面から QuickCache の設定をやり直せばOKでした。suexec が有効になっていない場合、このファイルは httpd ユーザーの所有となっているため、httpdユーザーまたはroot権限を持つユーザーで削除する必要があります。以下はその例。
# rm -f /home/user/public_html/wp-content/advanced-cache.php
こんな感じで今回のサーバー移転は完了しました。圧縮・解凍にかかる時間を含めても、移転だけなら数時間程度で作業できますので(複数サイトがあったとしても)、私のように頻繁にVPSを乗り換える方がいらっしゃったら、参考になれば幸いです。