WordPressをバックアップから復旧または移行する

テーマの編集をお試しするために、別のサーバにWordPressを導入し、BackWPupのバックアップデータを使用してデータ移行してみた。
BackWPupは、同一サーバ内での復旧を意識しているようで、別ホスト別ドメインなどの環境の差異に対応するには、少し手順が必要なようだ。

まずは復旧または移行先サーバにWordPressをインストールする。
こちらからダウンロードするか、もしくはインストール編を参照。
ただし、データベースの復旧はバックアップから行うので、setup-mysqlは使用しない方がいい。

次にバックアップしたファイルを新しい環境へコピーする。
コピー元、コピー先は自分の環境に合わせること。

$ cd バックアップ保存ディレクトリ
$ cp wp*.php /var/www/wordpress
$ cp -R wp-content wp-includes wp-admin /var/www/wordpress
$ cp -R var/lib/wordpress/wp-content/uploads /var/www/wp-content/


mysql用ユーザを作成する。
既にWordPress用のユーザが存在する場合は、省略してよい。

$ mysql -u root -p
mysql> grant all privileges on データベース名.* to ユーザ名@localhost identified by 'パスワード' with grant option;
mysql< exit;


ちなみに、setup-mysqlを使った場合、パスワードは/etc/wordpress配下の設定ファイルに保存されている。

WordPress用のデータベースを作成する。
既に壊れたデータベースがある場合は、削除する。

$ mysql -u ユーザ名 -p
mysql> drop database データベース名; ←削除する場合
mysql> create database データベース名;
mysql> show databases; ←確認
mysql> exit;


WordPressの移行で、ドメイン名などが変わる場合、バックアップのsqlファイルの中身を置換する。
例えば、今回私の場合は、ホスト名testで更にDocumentRootも変更した条件で実施しているので、fujitea.no-ip.infoから、test/wordpressに置換する必要があった。

同一ドメインでの復旧なら、sedコマンドは打たずにsqlファイルのインポートのみを行えばよい。

$ cp sqlファイル名 sqlファイル名.bk ←バックアップしておく
$ sed -i 's/fujitea\.no-ip\.info/test\/wordpress/g' sqlファイル名←私の環境の例
$ mysql -u ユーザ名 -p データベース名 < sqlファイル


更に、サイトの設定ファイルはバックアップに無いので、作成する。
復旧元サーバのファイルがそのまま使えるなら、持ってこればよい。

$ vi /etc/wordpress/config-test.php
define('DB_NAME', 'データベース名');
define('DB_USER', 'ユーザ名');
define('DB_PASSWORD', 'mysqlのパスワード');
define('DB_HOST', 'localhost');
define('WP_CONTENT_DIR', 'wp-contentのディレクトリ');


これで移行先ホストのWordPressにアクセスしてみて、移行元と同じように参照、編集できれば移行完了だ。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする