Wordmove の正しい設定方法

More than 1 year has passed since last update.

Wordmove を使用すると wordmove push 等の簡単なコマンドで、本番環境と開発環境を簡単に同期できます。

https://github.com/welaika/wordmove

ただ、ソーシャルやブログを見ると誤まった内容の記事が非常に多いので、設定ファイルの記述方法について紹介します。

以下は VCCW を使ってることを想定した Wordmove の使い方です。


設定ファイル Movefile の作り方

Wordmove を使って WordPress をデプロイするには 設定ファイルが必要です。

VCCW の場合、vagrant up 後に自動的にこの Movefile が生成されますので通常は不要ですが、もし何かのはずみでこのファイルがなくなってしまった時や一から作りたい時は、以下のコマンドを実行してください。

まず、VCCW のゲストマシンにログイン。

$ vagrant ssh

つぎにゲストマシン内で以下のコマンドを実行してください。

$ cd /vagrant

$ wp scaffold movefile

すると、ホストマシンから見た Vagrantfile と同じディレクトリに Movefile が出来ているはずです。

この時点ですでにうまくいかない!?

その場合は、VCCW の .zip をダウンロードし直して、もう一回 vagrant up してください。

そういう方はすでになんらかのエラーに遭遇しているわけなので、デフォルトの設定で vagrant up することをおすすめします。


Movefile を記述

Movefile があることを確認したら、そのファイルをお好みのテキストエディターで開いてください。

ただし、文字コードの設定は UTF-8、改行コードの設定は LF であるべきです。

現時点での Movefile は、VCCW をデフォルトで vagrant up した場合以下のようになっているはずです。

local:

vhost: "http://vccw.dev"
wordpress_path: "/var/www/html/" # use an absolute path here

database:
name: "wordpress"
user: "wordpress"
password: "wordpress"
host: "localhost"
charset: "utf8"

# paths: # you can customize wordpress internal paths
# 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://example.com"
wordpress_path: "/var/www/your_site" # use an absolute path here

database:
name: "database_name"
user: "user"
password: "password"
host: "host"
port: "3308" # Use just in case you have exotic server config
mysqldump_options: "--max_allowed_packet=50MB" # Only available if using SSH

exclude:
- ".git/"
- ".gitignore"
- ".sass-cache/"
- "bin/"
- "tmp/*"
- "Gemfile*"
- "Movefile"
- "wp-config.php"
- "wp-content/*.sql"

ssh:
host: "host"
user: "user"
port: 22
rsync_options: --verbose

Movefile は YAML というフォーマットで記述されていて、上の例では大きく二つのセクションがあります。


  • local

  • production

local の内容は、上述の方法で Movefile を生成した場合には変更する必要はありません。

production 以下にこれから必要な設定を書き込んでいきます。

そうそう、local はローカルで、production は本番サーバーとかそういうことです。ここをあべこべに考えるとうまく動作しなかったり、ひどい目にあったりしますので気をつけましょう。


記述内容


vhost:

多くの場合、この値は WordPress の WP_HOME とまったく同じであるべきです。WordPress の管理画面の [一般]-[設定] の「サイトアドレス (URL)」の値をコピペするのが無難です。

くれぐれも 最後のスラッシュを書かない ように気をつけてください。(localvhost も同様)

例:


  • vhost: "http://example.com"

  • × vhost: "http://example.com/"

WordPress は内部的にスラッシュ抜きでサイトのベースとなる URL を保存しています。なので、vhostの値の末尾にスラッシュが入っていると、wordmove pushwordmove pull に成功しても、実際にはサイトにアクセスできないとか、ダッシュボードにログインできないとか、画像がリンク切れするとかいろいろな不具合が発生します。

ここにスラッシュつけて紹介してるブログすごく多いです!気をつけましょう!

ここが正しく記述されていれば、Wordmove は、wordmove pullwordmove push した時に、localvhostproductionvhost を自動的に置換してくれます。

したがって、今回のやり方の場合、みなさんのサイトが http://vccw.dev で表示されるはずです。


wordpress_path:

これはサーバー側で WordPress がインストールされているパスを指定してください。

このパスとは、wp-settings.php があるパスを記述してください。wp-config.php とは違うケースがあるので注意しましょう。


database:

この項目には、さらに name などのいくつかの項目があります。

これらの値は、サーバー側の wp-config.php に記述されているものをコピペしてください。

ひとつだけ注意点があるのですが、いくつかの共有サーバーでは、MySQL のデフォルトの文字コードが UTF-8 ではないようです。この場合は、charset: "utf8" という行を database: 以下のように付け足してください。

  database:

name: "database_name"
user: "user"
password: "password"
host: "host"
port: "3308" # Use just in case you have exotic server config
mysqldump_options: "--max_allowed_packet=50MB" # Only available if using SSH
charset: "utf8"

さくらのレンタルサーバーにWordPressをデプロイするのはVCCW + Wordmoveが最高に捗る


ssh:

hostuser などの各項目を正しく設定してください。

現在では、SSH が使えないサーバーでは、Wordmove は使用できませんのであしからず。


デプロイ

以上が完了したらためしに wordmove pull -t とかしてみましょう。

この場合、本番環境からテーマを持ってきます。

データベースの時は、wordmove pull -dです。

すべてやるときは、wordmove pull --all です。

逆に本番にデプロイする時は push です。間違えないように気をつけましょう。

Wordmove は、pullpush した時にデータベースのバックアップを、ローカル側の wp-content/ 以下に自動的に保存してくれます。

うっかり間違えてしまった時は、そのバックアップからデータベースを復活させてください。