本番環境のWordPressサイトを『VCCW+WordMove』でローカルと同期する方法
2018/04/13
- Macに『Vagrant + VirtualBox』を導入する手順
- Windowsローカル開発環境を『Vagrant + VirtualBox』で作ってみよう
- Vagrantを使ってみよう!Boxの取得から起動・停止・削除まで
- 『Vagrant Cloud』を利用してVagrantのBoxを追加してみよう
- Vagrantで仮想マシンに接続&Webサーバを立ち上げてみよう
- Vagrantで作成した環境を「コピー&配布して他人と共有する」方法
- 『Vagrant+VCCW』でWordPressローカル環境を構築してみよう
- 本番環境のWordPressサイトを『VCCW+WordMove』でローカルと同期! <- 本記事
こんにちは、okutani(@okutani_t)です。VCCWを使うとWordPressのローカル環境がかんたんに作成できて便利です。
VCCWの導入方法は、前回の記事で紹介しています。
LINK『Vagrant+VCCW』でWordPressローカル環境を構築してみよう | vdeep
このVCCWにデフォルトで含まれている『WordMove』プラグインを使うと、本番環境のサーバーとローカル環境の仮想マシンを「完全同期」することができて非常に便利です。
設定ファイルなどはもちろんのこと、データベースの内容もコマンドひとつで同期できます。
当ブログもVCCWで管理していて、ローカル環境でデザインをいじったり、記事を書いてそのまま本番環境にプッシュしています。覚えるとかなり便利です。
今回、サーバーは「エックスサーバー」を使っています。VPSなどでなく、通常のレンタルサーバーでも使えるのが良いですね。
また、本番環境にはSSHで接続できるようにしておく必要があるので、次の記事などを参考に設定を済ませておいてください。
LINKエックスサーバーにSSHで接続してみよう! | vdeep
では、さっそくVCCWとWordMoveを使って、本番環境とローカル環境の同期をおこなってみましょう。
[2018/04/13追記]2018年4月現在の最新版vccw3.18.0で動くように記事全体をリライトしました
スポンサーリンク
もくじ
Movefile.ymlに接続設定を記述
WordMoveを使うには、VCCWを導入したディレクトリに「Movefile.yml」というファイルがありますので、そちらに設定を記述していきます。
では、Movefile.ymlに接続設定を書いていきましょう。適宜、site.ymlで記述した設定にしたがって、記述してみてください。
※インデント(字下げ)が合っていないとエラーになるので注意
global:
sql_adapter: default
local:
vhost: "http://設定したローカルのホスト名"
wordpress_path: "/var/www/wordpress" # ←小文字の/を使ってください
database:
name: "wordpress"
user: "wordpress"
password: "wordpress"
host: "localhost"
charset: "utf8"
# paths: # you can customize wordpress internal paths
# wp_config: "wp-config-custom.php"
# wp_content: "wp-content"
# uploads: "wp-content/uploads"
# plugins: "wp-content/plugins"
# mu_plugins: "wp-content/mu-plugins"
# themes: "wp-content/themes"
# languages: "wp-content/languages"
production:
vhost: "http://本番環境のドメイン"
wordpress_path: "/home/サーバーID/本番環境のドメイン/public_html" # 本番環境のWordPress配置場所
database:
name: "サーバーID_hogedb" # 本番環境のDB名
user: "サーバーID_piyouser" # 本番環境のDBユーザー名
password: "password" # 本番環境のDBパスワード
host: "mysql0000.xserver.jp" # 本番環境のDBホスト名
port: "3306" # 3308から変更
mysqldump_options: "--max_allowed_packet=50MB"
exclude:
- ".git/"
- ".gitignore"
- ".sass-cache/"
- "bin/"
- "tmp/*"
- "Gemfile*"
- "movefile.yml"
- "wp-config.php"
- "wp-content/*.sql"
- ".htaccess" # 追記
ssh:
host: "サーバーID.xsrv.jp" # 本番環境ホスト名(初期ドメイン)
user: "ユーザーID"
port: 10022
rsync_options: --verbose
このように記述できたら、WordMoveが利用できるようになります。
実際に本番環境からプルしてみましょう。なお、本番環境のバックアップをとってから作業するようにしておきましょう。操作を誤ると本番環境のデータが吹き飛ぶことがあります……
本番環境からローカルへpullしてみる
Movefile.ymlがあるディレクトリを開き、次のコマンドから仮想マシンにログイン。
$ vagrant ssh
仮想環境にログインしたら、wordmoveコマンドが使えるディレクトリ「/vagrant/」に移動します。
$ cd /vagrant/
次のコマンドで「本番環境からすべてのデータを取得(同期)」することができます。
$ wordmove pull --all
ここでエラーが出たら、Movefile.ymlのインデントや、SSHの設定項目などを見直してみましょう。それでも解決しなかったら、エラーコードでぐぐってみてください。
ローカル側のドメインをブラウザに入力して、同期できたか確認します。
本番環境からローカル環境へ、無事同期できたことが確認できました。
うまくサイトが表示されない場合
プルしたあとにうまくサイトが表示されない場合、次の項目を見直してみてください。
wp-config.phpのtable_prefix
私の場合、DBの接頭語が一致していなかったため、サイトを表示すると真っ白の画面になってしまいました。これを解決するには、ローカル側の「wordpress/wp-config.php」の次の行を書き換えます。
$table_prefix = 'wp9_';
これでサイトが表示されました。
.htaccessの設定
私の場合、エックスサーバーで設定した「.htaccess」がローカル環境で使えませんでした。次のとおり、Movefile.ymlに.htaccessを同期させないように設定を記述してみました。
exclude:
- ".git/"
- ".gitignore"
- ".sass-cache/"
- "bin/"
- "tmp/*"
- "Gemfile*"
- "movefile.yml"
- "wp-config.php"
- "wp-content/*.sql"
- ".htaccess" # 追記
ローカルの.htaccessは次のとおり設定しなおしました。
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
うまくサイトが表示されなかったときの参考にしてください。
WordMoveのかんたんな使い方
ローカル側で、記事を書いたり、プラグインを追加したり、デザインを変更したりしたあと、次のコマンドで本番環境にプッシュできます。
$ wordmove push --all
また、プッシュ(push)とプル(pull)には、それぞれ次のオプションを取ることができます。
# すべてのファイルを対象
$ wordmove pull(もしくはpush) --all
# データベースのみ対象
$ wordmove pull -d
# uploadsフォルダのみ対象
$ wordmove pull -u
# themeのみ対象
$ wordmove pull -t
# wp-config.phpも対象に含む
$ wordmove pull -c
上記以外のオプションは、「wordmove help pull」などで確認してみてください。
これで便利に本番環境とローカル環境を管理できますね。
まとめ
『VCCW+WordMove』で本番環境とローカル環境をかんたんに同期することができました。
今回はエックスサーバーで設定しましたが、さくらレンタルサーバーでもSSHが使えるプラン(スタンダードプラン以上)なら、本記事の内容で同じように利用できることを確認しています。
ただ、以前ロリポップ!で使おうと思ったらMySQLのバージョンの関係で、DBの同期だけができませんでした。今使えるかどうかは試していないので分かりませんが、使えたら便利ですね。
参考になれば幸いです。
- Macに『Vagrant + VirtualBox』を導入する手順
- Windowsローカル開発環境を『Vagrant + VirtualBox』で作ってみよう
- Vagrantを使ってみよう!Boxの取得から起動・停止・削除まで
- 『Vagrant Cloud』を利用してVagrantのBoxを追加してみよう
- Vagrantで仮想マシンに接続&Webサーバを立ち上げてみよう
- Vagrantで作成した環境を「コピー&配布して他人と共有する」方法
- 『Vagrant+VCCW』でWordPressローカル環境を構築してみよう
- 本番環境のWordPressサイトを『VCCW+WordMove』でローカルと同期! <- 本記事
Web開発のお仕事を募集しています
フリーランスのエンジニアとして、Webシステム開発のお仕事依頼を随時募集しています(現在の業務量によってお受けできない場合もあります)。
「Ruby on Rails」「JavaScript(jQuery, Reactなど)」「HTML + CSS」を用いたシステム開発、「Heroku」等を用いたサーバー構築・運用、「Git」や「GitHub」を利用したソーシャルコーディングなどに対応しています。
ご依頼を検討している方は、下記リンク本ブログからのお問い合わせ、もしくはokutaniのポートフォリオからご連絡ください。
LINKお問い合わせ
スポンサーリンク