nmi.jp Twitter → @tkihira
スマートフォン実機デバッグ: JSConsoleを使ってみる HSL色空間(HLS色空間)の紹介

wordpressのサーバ移転


2011-05-22
Takuo Kihira

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設定を切り替えて終了です。特にトラブルらしいトラブルはありませんでした。