開発
WordPressサイトの移設を行う
shimizu
今日は、既設のWordPressサイトを現在インストールされている場所とは別のサーバまたは別のディレクトリに移設する方法について見て行きましょう。
このような作業は、制作環境から本番環境へリリースする際や、ドメイン名の変更時に行うことになります。
1. 移設元と移設先のURLを確認する
まず、どのURLからどのURLへ移すのかを確認しておきます。この例では、下記のアドレスで説明します。
移設元: http://abc.example.com/blog/
移設先: http://xyz.example.com/blog/
2. 移設元と移設先のデータベースを確認する
URLと同様に、データベースの場所も確認しておきます。この例では、下記の設定で説明します。
移設元:
- サーバ名: db.example.com
- ユーザ名: wpuser_abc
- データベース名: wpdata_abc
移設先:
- サーバ名: db.example.com
- ユーザ名: wpuser_xyz
- データベース名: wpdata_xyz
3. データベースのダンプを行う
WordPressの移設には、ファイルの移動に先立って、データベース内の情報の移動が必要です。データを取り出すため、移設元でMySQLデータベースのダンプを行います。このコマンドの各パラメータは、wp-config.phpを参照すると確認できます。
% mysqldump -h (データベースサーバ名) -u (ユーザ名) -p (データベース名) > (データベース名).sql Enter password: (パスワードを入力)
今回の場合、下記のコマンドを実行します。
% mysqldump -h db.example.com -u wpuser_abc -p wpdata_abc > wpdata_abc.sql
正常に完了すると、「wpdata_abc.sql」というファイルにデータベースの内容が保存されます。
(今回はデータのコピーが必須であるためダンプを行いますが、どのような時でも作業前にデータベースのバックアップを行い、万が一の事態に対処できるようにしておきましょう)
4. データベースのコピーを行う
あらかじめ移行先のデータベースにて、ユーザとデータベースを作成しておきます。(データベース管理者に依頼してください)
準備ができたら、移行先のデータベースにログインします。
% mysql -h (データベースサーバ名) -u (ユーザ名) -p (データベース名) Enter password: (パスワードを入力)
今回の場合、下記のようにします。
% mysql -h db.example.com -u wpuser_xyz -p wpdata_xyz
ログイン後、sourceコマンドで先ほどダンプしたファイルを読み込ませて、移行元と同じデータを作成します。
wpuser_xyz@wpdata_xyz> source wpdata_abc.sql
WordPressの設定のうち、URLが格納されている項目を変更します。
下記のコマンドで設定状況を確認しておきます。
wpuser_xyz@wpdata_xyz> select * from wp_options where option_id in (1,37); +-----------+-------------+------------------------------+----------+ | option_id | option_name | option_value | autoload | +-----------+-------------+------------------------------+----------+ | 1 | siteurl | http://abc.example.com/blog/ | yes | | 37 | home | http://abc.example.com/blog/ | yes | +-----------+-------------+------------------------------+----------+ 2 rows in set (0.00 sec)
現在はまだ移行前のURLが設定されている状態です。これを、下記のコマンドで移行先のURLに変更します。
wpuser_xyz@wpdata_xyz> update wp_options set option_value='http://xyz.example.com/blog/' where option_id in (1,37); Query OK, 0 rows affected (0.00 sec) Rows matched: 2 Changed: 0 Warnings: 0
再度確認すると、移行先のURLに書き換えられたことがわかります。
wpuser_xyz@wpdata_xyz> select * from wp_options where option_id in (1,37); +-----------+-------------+------------------------------+----------+ | option_id | option_name | option_value | autoload | +-----------+-------------+------------------------------+----------+ | 1 | siteurl | http://xyz.example.com/blog/ | yes | | 37 | home | http://xyz.example.com/blog/ | yes | +-----------+-------------+------------------------------+----------+ 2 rows in set (0.00 sec)
これでデータベースに関する作業は完了しました。
5. ファイルのコピーを行う
WordPressディレクトリ内のファイルを、すべて移行先にコピーします。
異なるサーバ間の移設の場合は、SSH等を利用して転送してください。
6. wp-config.phpを書き換える
WordPressの設定ファイル「wp-config.php」を開き、データベース接続設定を移行先のものに変更します。
変更する箇所は、下記の項目の値です。
- DB_NAME (データベース名)
- DB_USER (ユーザ名)
- DB_PASSWORD (パスワード)
- DB_HOST (データベースサーバ名)
これで移行の準備が整いました。
7. Webブラウザで移行先のURLを開く
Webブラウザで移行先のURLを開き、正常に表示されるかどうかを確かめます。ここまで完了すれば移行前と同じく管理メニューが使えますので、必要に応じてユーザアカウントの設定やページデザインの変更を行えば完成です。移行元のサイトを廃止する場合は、不要になったファイルやデータベースの削除を忘れないようにしてください。