AC-5

某SEの雑記帳

WordPress引越し

      2016/04/05

WordPressの引越し

テストサイトでWordPressで作ったものや、サーバーの引越し等で
WordPressのデータを移行する機会もあるかと思います。
基本的には
・WordPressをインストールして、必要なファイルを全てコピー
・MySQLデータをダンプしてインポートする

の2点なのですが、パーミッションの設定が変わったり抜けがあったりとうまくいかないこともあるので、
sshで直接ファイルコピーを行います。

引越し元と引越し先でssh接続をしてファイルコピー

rsyncコマンドを利用してコピーします。
rsyncコマンドが使えない場合はインストールしてください。

[root@test]# yum -y install rsync←rsyncインストール

この場合、引越し元と引越し先の両方でrsyncがインストールされている必要があります。

引越し先(新サーバ)で実行 ファイルのコピー

[root@test]# rsync -avz --delete ssh接続ユーザ名@引越し元(コピー元)ホスト:/var/www/html/ /var/www/html/←ファイルのコピー

秘密鍵を利用した場合のrsync(秘密鍵を/home/test/publickey_id_rsaとして保存しておいた場合)

[root@test]# rsync -avz --delete -e "ssh -i /home/test/publickey/id_rsa"  ssh接続ユーザ名@引越し元(コピー元)ホスト:/var/www/html/ /var/www/html/←ファイルのコピー

rsyncのオプション

–delete:コピー元にない(削除された)ファイルをコピー先で削除します。コピー元とコピー先を同期します。
-a:コピー元のディレクトリを再帰的にオーナー・グループ・パーミッション・タイムスタンプをそのままコピーします。
-v:コピーしているファイル名やバイト数などの情報を表示します。
-z:通信を圧縮します。
-e:sshを利用します。

sshのオプション

-i:秘密鍵を指定します。

コピー元(旧サーバ)で実行 MySQLのデータをダンプする

ダンプファイルを保存する適当なディレクトリに移動しておく。

[root@test]# mysqldump --default-character-set=binary -u root -p -x --all-databases > mysqldump.sql←mysqldump.sqlという名称で保存する

先ほどのrsyncやFTP等で、新サーバにmysqldump.sqlファイルをコピーしておく

ダンプしたMySQLデータをインポート

[root@test]# mysql -u root -p < mysqldump.sql

あとは、wp-config.phpの以下の箇所を引越し先に合わせて修正すれば完了です。

// ** MySQL 設定 - こちらの情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', 'mysql_dbname');
 
/** MySQL データベースのユーザー名 */
define('DB_USER', 'mysql_username');
 
/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'mysql_password');
 
/** MySQL のホスト名 */
define('DB_HOST', 'localhost');

移動後

ページが表示されない

phpがインストールされていない場合

[root@test]# yum -y install php php-mbstring←phpインストール
[root@test]# service httpd restart←apache再起動

次のメッセージが表示された場合は下記の記事を・・・
お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。

 - Linux, WordPress