vdeep

*

vdeepはプログラミング、IT、Web技術、ライフハックの事などなどを管理人okutaniがつぶやくブログです

本番環境のWordPressサイトを『VCCW+WordMove』でローカルと同期する方法

      2018/04/13

LINEで送る
Pocket

vccw-wordmove

  1. Macに『Vagrant + VirtualBox』を導入する手順
  2. Windowsローカル開発環境を『Vagrant + VirtualBox』で作ってみよう
  3. Vagrantを使ってみよう!Boxの取得から起動・停止・削除まで
  4. 『Vagrant Cloud』を利用してVagrantのBoxを追加してみよう
  5. Vagrantで仮想マシンに接続&Webサーバを立ち上げてみよう
  6. Vagrantで作成した環境を「コピー&配布して他人と共有する」方法
  7. 『Vagrant+VCCW』でWordPressローカル環境を構築してみよう
  8. 本番環境の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の設定項目などを見直してみましょう。それでも解決しなかったら、エラーコードでぐぐってみてください。

ローカル側のドメインをブラウザに入力して、同期できたか確認します。

vccw-wordmove2

本番環境からローカル環境へ、無事同期できたことが確認できました。

うまくサイトが表示されない場合

プルしたあとにうまくサイトが表示されない場合、次の項目を見直してみてください。

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の同期だけができませんでした。今使えるかどうかは試していないので分かりませんが、使えたら便利ですね。

参考になれば幸いです。

  1. Macに『Vagrant + VirtualBox』を導入する手順
  2. Windowsローカル開発環境を『Vagrant + VirtualBox』で作ってみよう
  3. Vagrantを使ってみよう!Boxの取得から起動・停止・削除まで
  4. 『Vagrant Cloud』を利用してVagrantのBoxを追加してみよう
  5. Vagrantで仮想マシンに接続&Webサーバを立ち上げてみよう
  6. Vagrantで作成した環境を「コピー&配布して他人と共有する」方法
  7. 『Vagrant+VCCW』でWordPressローカル環境を構築してみよう
  8. 本番環境のWordPressサイトを『VCCW+WordMove』でローカルと同期! <- 本記事
LINEで送る
Pocket

okutani (@okutani_t) のヒトコト
WordMoveすごく便利ですねー。全部同期するとすこし時間がかかりますが、コマンドひとつでかんたんに同期できるのはいいですね!

 - Vagrant, WordPress

スポンサーリンク

PC用AdSense

PC用AdSense

  こちらもどうぞ

vdeepのトップページへ戻る画像です。風船の形をした島を女の子が掴んでいます。