鳥取でWebサイト制作

S.K Works

2018.8.14

Wordmoveでローカルと本番のWordPressを同期しよう

どうも、kuroro0319です。

前回の記事(VCCWを使ってローカル環境でWordPressを開発しよう)で、WordPressをローカル環境に構築する方法を紹介しました。
というわけで、今回はそのVCCWの中に入っているWordmoveを使って、ローカル環境のWordPressを本番環境と同期する方法をメモがてら紹介します。

Wordmoveって何?

VCCW内に入っているWordPressの本番環境とローカル環境を同期するアプリケーションのようなものです。
Rubyで作られてるみたいです。
Git hubにWordmoveの公式サイトがあるみたいです。

Wordmoveの設定方法

VCCWの初期設定のママだと使えないので、本番環境の情報を同期できるように設定をします。
まずは「Movefile.yml」を開きます。
以下のように色々と書き換えていってください。
これをやった時はロリポップのサーバーを使ったのですが、特にこの設定で問題ありませんでした。

global:
  sql_adapter: default

local:
  vhost: "http://your-local-domain.local" # ローカル環境のドメイン
  wordpress_path: "/var/www/html" # use an absolute path here ローカル環境の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://your-release-domain.com" # 本番環境のドメイン
  wordpress_path: "/home/your-wordpress-directory/html" # 本番環境のWordPress配置場所

  database:
    name: "your-db-name" # 本番環境のDB名
    user: "your-db-user" # 本番環境のDBユーザー名
    password: "your-db-password" # 本番環境のDBパスワード
    host: "your-db-host" # 本番環境のDBホスト名
    charset: "utf8"

  exclude:
    - ".git/"
    - ".gitignore"
    - ".sass-cache/"
    - "bin/"
    - "tmp/*"
    - "Gemfile*"
    - "movefile.yml"
    - "wp-config.php"
    - "wp-content/*.sql"
    - ".htaccess" # 追記

  ssh:
    host: "ssh-host" # 本番環境ホスト名(初期ドメイン)
    user: "ssh-account" # 本番環境SSHアカウント
    port: 2222
    password: "ssh-password" # 本番環境SSHパスワード
    rsync_options: --verbose

Wordmoveで本番環境と同期しよう

というわけで、遂に本題の部分です。
これをやりたいがためにVCCWを入れたといっても過言ではありません。
まずは以下のコマンドで、VagrantにSSHで接続しましょう。

$ vagrant ssh

そして、Vagrantのあるディレクトリに移動しましょう。

$ cd /vagrant/

あとは本番環境からダウンロードしましょう!

$ wordmove pull --all

ちゃんとダウンロードできたか見てみましょう!

Wordmoveで同期ができない場合

なに!?同期ができないって!?

バっバカな…この私が間違っているというのか…

クソ〜〜〜!

こんなもの!こんなもの!

ウギャ〜〜〜〜〜〜〜〜〜〜〜〜〜〜

となる前に、「wordpress/wp-config.php」を開きましょう。

おそらく…というか、私は以下の部分が原因でした。

$table_prefix = 'wp_';

サーバー管理画面だと「テーブル接頭辞」となっているものに「'wp_'」を変更しましょう。

そして、またWordmoveで同期するのですが、全部pullすると元の黙阿弥なので、以下のコマンドにしてみましょう。

$ wordmove pull -d

これはデータベースのみの同期になるので、「wp-config.php」は同期されません。

また、Wordmoveにはその他にも以下のような便利なコマンドがあります。

# uploadsフォルダのみ対象 
$ wordmove pull -u 

# themeのみ対象 
$ wordmove pull -t 

# wp-config.phpも対象に含む 
$ wordmove pull -c

「pull」の部分を「push」に変えると逆に本番環境にアップロードできます。
「all」に関しては危険なので、「push」時にはしない方が無難でしょう。
「all」は最初の「pull」の時のみ実行して、あとは適宜対応がいいかと思います。
操作時はくれぐれもデータをふっとばさないように注意してください。
それからVagrantのSSH接続からの脱出方法は以下になります。

$ exit

何故かローカルのWordPressの管理画面にアクセスできなくなってしまいました。
おそらくですが、常時SSLの対応などをしていると管理画面にアクセスできないのかもしれないです。(調査中)

Wordmoveを使ってみての感想

ちょっと設定に戸惑う部分はありますが、非常に簡単に同期できるので、便利だと感じました。
ただ、サーバーにsshの設定が必要だったりするので、使える案件は限られるかもしれません。
あとは自分のブログとか、小規模なサイトとかだったら管理しやすいのかなと思います。
結構大きな案件で、コマンド間違えてサイトを吹っ飛ばしたなんてことになったら、目も当てられないですからね。
くれぐれも操作には最新の注意を払ってください。
Vagrantの設定変更とか立ち上げとかちょっと時間かかる印象なので、そこまでの労力をかけたいかどうかってのもありますね。
ブログのサーバー移行の時とかに使うのが良いのかな…

それでは良いWordPressライフを!

参考サイト

本番環境のWordPressサイトを『VCCW+WordMove』でローカルと同期する方法 | vdeep
→ここが一番わかりやすかったです。

WordPress本番環境とローカル環境を超簡単に同期するWordMoveの設定&使い方
→ここもいいのですが、Windows向けなので、Macの人は参考程度にという感じで…非常にわかりやすいですが…

WordMoveを使ってVagrant内のWordPressと本番環境を同期する! | Firegoby
→ちょっと古い記事なので、色々と設定が違っていますが、わかりやすいと思います。エンジニア向けっぽい内容なので、ハードルは高めです。

鳥取県倉吉市でWebサイト・ホームページ制作をお考えの方はお気軽にお問い合わせください。

お問い合わせフォームはこちら