rhasm.net/blog

興味の赴くままに色々紹介し、解説をするブログです。

*

wordpressをサーバ間で引越ししてみた。

      2015/08/30

Wordpressのサーバ引越し

サーバ間でWordpressを引越しさせます。

記事の構成

この記事は全4本の記事のうちのひとつです。

そして、この記事は以下の構成となっています。

  • WordPressのファイルをコピーします
  • パーミッションを設定します

SCPでファイルをコピーする

VPSサーバ間のファイルコピーはSCPを使うことにします。
SCPコマンドは、引越し元のVPSで実行します。

# 例として以下の設定の場合
# コピー元ディレクトリ /fromdir
# コピー先SSHのポート番号 9999
# コピー先ユーザ名 username
# コピー先ドメインまたはIPアドレス exsample.com
# コピー先ディレクトリ /todir
$ scp -rv -P 9999 /fromdir [email protected]:/todir

-rは再帰コピー、-vはコピー最中に詳細を表示します。-Pはポート番号の指定です。実行すると、パスワードを求められるのでコピー先ユーザ名に設定したパスワードを指定します。

WordPressのパーミッション設定

コピーが終わったwordpressファイルを適切な場所に設置したら、次はパーミッションやオーナーの設定をしていきます。
ここでは最低限必要な部分を書いていきますが、プラグインなどを導入している場合は、プラグインのフォルダについても必要があれば変更してください。

# rootになっておきます。
$ su -
# wordpressフォルダに移動
$ cd /var/www/www.exsample.com
# sitemap関連があるのであれば
$ chown nginx.nginx sitemap.xml
$ chown nginx.nginx sitemap.xml.gz
# wp-contentディレクトリはプラグインによってはパーミッションを変更
$ chmod 757 wp-content

$ cd wp-content
$ chmod 757 uploads
# uloads以下のディレクトリは全て757にしてまわる
$ cd uploads
$ find . -type d -exec chmod 757 \{\} \;

# wp-contentディレクトリに戻る
$ cd ..
# themesディレクトリへ
# テーマエディタを使う場合はthemesフォルダ以下のファイルのパーミッションを変更する
$ cd themes
$ find . -type f -name "*.php" -exec chmod 646 \{\} \;
$ find . -type f -name "*.css" -exec chmod 646 \{\} \;

後はプラグイン等で画像ファイルをフォルダにアップロードするようなものは、同じようにパーミッションの設定が必要になります。

引越し先でmysqlの準備をしておく

まずは、引越し先のVPSでmysqlのユーザやデータベースを作成してやりましょう。

$ mysql -u [ユーザ名] -p

mysqlにログインした後、SQLを発行します。(無論、phpMyAdminで実行するのもありです。)

CREATE DATABASE [データベース名] CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON *.* TO [ユーザ名]@localhost IDENTIFIED BY '[パスワード]';
FLUSH PRIVILEGES;

なお、上記のユーザ名やデータベース名はwp-config.phpの中身とあわせておかなくてはいけません。以前のサーバと違うユーザやデータベース名を使う場合は、wp-config.phpの中身もあわせて替えておきましょう。
ここで、一度wordpressのトップページにアクセスします。
インストール画面が表示されれば、動作確認ができた形になります。

引越し元からデータを吸出し、引越し先に登録する

その後、引越し元のVPSでデータを吐き出します。

$ mysqldump -u [DBユーザ名] -p [データベース名] > dump.sql

そして、SCPでコピーしてやります。

$ scp -rv -P 9999 dump.sql [email protected]:/todir

その後、引越し先のVPSでdump.sqlを取り込みます。

$ mysql -u [DBユーザ名] -p [データベース名] < dump.sql

必要な場合は、mysqlからWordpressアドレスを更新しておく

WordPressの一般設定の中に「WordPressアドレス」というのがあるのですが、これが違っていると色々ややこしいので、先にmysqlで直接変更してしまいます。

$ mysql -u [ユーザ名] -p

繰り返しますが、phpMyAdminから実行しても同じです。

UPDATE [データベース名].wp_options SET option_value='正しいURL' WHERE option_id=1;
# wp_ の部分については、変更している場合は正しいprefixを指定します。
# prefixを忘れた場合はwp-config.phpに書いてあります。

以上、設定を終えたらWordpressにアクセスしてみます。無事に記事が表示されたり、ログインはできるでしょうか。色々チェックをしてみてください。

なお、ドメイン名が変わった場合は、記事中の画像のURLについても一括で変更が必要な場合もあります。その際には、プラグインのSearch Regexを使うと一括変更ができて便利です。

以上で、Wordpressの引越しは終わりです。
無事に確認が終わったら、最後に自動起動を設定しておきましょう。

chkconfig mysqld on
chkconfig php-fpm on
chkconfig nginx on

参考サイト

コンユウメモ:CentOS 6.4でNginx, php-fpm, MySqlでWordpressをいちから設定する手順
Linuxで自宅サーバ構築・管理: KSKNET:scp – ファイル転送コマンド
ITpro:管理者必見! ネットワーク・コマンド集 – scpコマンド
WordPress Codex:ファイルパーミッションの変更
railtownの日記:chmodでパーミッション変更。再帰オプション(-R)は実は使えなかった。。
UNIX入門:chmod – ファイルのアクセス権の変更
マツモブログ:findのexecが便利
phonokraft:[wp] wordpressを丸ごと移管/移行させる手順
php spot:mysqldumpでバックアップ&復元
MinacoWiki:MySQL/ユーザとDB作成

各サイト様にお礼申し上げます。

記事のリンク

 - コンピュータ, サーバサイド , ,