wordpressをサーバ間で引越ししてみた。
2015/08/30
サーバ間でWordpressを引越しさせます。
記事の構成
この記事は全4本の記事のうちのひとつです。
1 | さくらのVPSを借りて初期設定してみる |
2 | nginxとphp-fpmを設定してサイト上でPHPが動くようにする |
3 | MySQLとphpMyAdminを動作させる |
4 | 古いVPSからWordpressを丸ごと引越しさせる(この記事) |
そして、この記事は以下の構成となっています。
- 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作成
各サイト様にお礼申し上げます。
記事のリンク
1 | さくらのVPSを借りて初期設定してみる |
2 | nginxとphp-fpmを設定してサイト上でPHPが動くようにする |
3 | MySQLとphpMyAdminを動作させる |
4 | 古いVPSからWordpressを丸ごと引越しさせる(この記事) |