wordpressのサーバ移転に関して、作業をメモしておきます
今までのnmi.jpは私の個人サーバにあったのですが、同じサーバに同居しているWebアプリのお行儀が悪く、しょっちゅう落ちてしまいます。そこで、ブログだけ別のサーバに引っ越すことにしました。ネットを調べてみたらphpmyadminとか使っていて、それはないわーと思ったのでコンソール上でのお引越し方法です。
作業の工程は以下の通りです。
- 既存のサーバからデータベースをインポートする
- 既存のサーバからファイルをコピーする
●既存のサーバからのデータベースインポート
まずは旧サーバからデータをインポートです。mysqldumpを使います。
[hoge@oldserver ~]$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8729
Server version: 5.0.77 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
| wp_nmi | ←これ
+--------------------+
xx rows in set (0.17 sec)
mysql> exit
[hoge@oldserver ~]$ mysqldump --add-drop-table -u root -p wp_nmi | bzip2 -c > blog.nmi.bak.bz2
Enter password:
add-drop-tableは、dumpされるSQLにdrop tableを付けるオプションです。移行失敗時のために付けておきました。そして出来たファイルを新サーバで展開します。
[hoge@newserver ~]$ scp hoge@oldserver:~/blog.nmi.bak.bz2 .
[hoge@newserver ~]$ bzip2 -d blog.nmi.bak.bz2
[hoge@newserver ~]$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.0.77 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> create database wp_nmi;
Query OK, 1 row affected (0.00 sec)
mysql> exit
[hoge@newserver ~]$ mysql -u root -p wp_nmi < blog.nmi.bak
Enter password:
dumpされたログを見るとdumpする前にdatabaseを作成する必要がありそうな気がしたので、先に作っておきました。作成後に、dumpファイルを標準入力から流し込んでやればデータベースの移行は終了です。実際は新サーバにmysqlが入っていなかったのでそのインストールもしましたが、それのログは割愛しています。
●既存サーバからファイルをコピーする
wordpressはphpで作られているので、ファイルそのままコピーで動きそうな気がしました。しかし旧サーバと新サーバではユーザー体系が違うので、apacheの作ったファイルがどの程度あるのかを先に調べておきました。
[hoge@oldserver wpdir]$ find . ! -user hoge
結果、 ./wp-contents/uploads/ ディレクトリ以外に存在せず、そのディレクトリも777で作成されているようだったので、パーミッションだけ保持したままファイル全コピーで対応することにしました。
[hoge@oldserver www]$ tar cvfzp ~/html.nmi.tar.gz wpdir
[hoge@newserver www]$ tar xzpfv html.nmi.tar.gz
後は新しいサーバのwp-config.phpを書き換えて、httpd.confを書き換えて、hostsファイルを書き換えて起動確認→DNS設定を切り替えて終了です。特にトラブルらしいトラブルはありませんでした。