この記事のスコープ
- ファイルとDB(MySQL)のデータ移行
この記事のスコープ外
- 移転先のWordPress実行環境の構築(できているものとする)
- LAMP or LEMP環境
- webサーバのconfig
- ドメインの変更(なしとする)
- DNSの切り替え(下記作業の後に実施)
手順
- ファイルの移動
- DBの移動
1. ファイルの移動
移転元のサーバでの作業
-
index.php
やwp-config.php
を含んだディレクトリ一式を丸ごとコピーする方針 - 以下、必要に応じてrootで実行
tar -zcvf wordpress.tar.gz <wpのインストールされたディレクトリ(/var/www/html/wordpressなど)>
mv wordpress.tar.gz ~
ローカルでの作業
- 移転元 => ローカル => 移転先へと移動
scp -p <移転元ユーザ名>@<移転元ホスト名>:~/wordpress.tar.gz /tmp
scp -p /tmp/wordpress.tar.gz <移転先ユーザ名>@<移転先ホスト名>:~
移転先のサーバでの作業
-
/var/www/wordpress
に展開する -
/var/www/wordpress
に向くようにwebサーバの設定ファイルを書き換えておく - 既に
/var/www/wordpress
にWordPressがインストールされている場合はmv /var/www/wordpress /var/www/wordpress.bak
などとしておく
chown www-data:www-data ~/wordpress.tar.gz # webサーバの実行ユーザ名に合わせてください
mv ~/wordpress.tar.gz /var/www/
cd ~/var/www/
tar -zxvf wordpress.tar.gz
2. DBの移動
移転元のサーバでの作業
- 「WPのデータが格納されたデータベース名」を忘れた場合は
wp-config.php
に書いてあるので参照
mysqldump -u root <WPのデータが格納されたデータベース名> > ~/wordpress.sql
ローカルでの作業
scp -p <移転元ユーザ名>@<移転元ホスト名>:~/wordpress.sql /tmp
scp -p /tmp/wordpress.sql <移転元ユーザ名>@<移転元ホスト名>:~
移転先のサーバでの作業
- ダンプしたsqlファイルをリストアするにあたり、 以下の事前作業が必要
-
wp-config.php
に書かれたDB_NAME
に記載のデータベースの作成 -
wp-config.php
に書かれたDB_USER
に記載のユーザの作成 - どちらも移転元と変わっていても問題ないはず。
-
-
wp-config.php
に記載の内容とDBの内容が合致してないとデータベース接続確立エラーになるので、もしエラーが発生したらwp-config.php
を修正する。
# 事前作業
mysql -uroot
CREATE DATABASE <データベース名>;
CREATE USER <ユーザ名> IDENTIFIED BY [PASSWORD] '<パスワード>';
# リストア
mysql -u<ユーザ名> -p<パスワード> -D <データベース名> < ~/wordpress.sql
終わり
この状態ではまだドメインが切り替わっていないが、記事の表示などは通常通りできるようになっているはず。