Wordmove を使用すると wordmove push
等の簡単なコマンドで、本番環境と開発環境を簡単に同期できます。
ただ、ソーシャルやブログを見ると誤まった内容の記事が非常に多いので、設定ファイルの記述方法について紹介します。
以下は 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)」の値をコピペするのが無難です。
くれぐれも 最後のスラッシュを書かない ように気をつけてください。(local
の vhost
も同様)
例:
- ○
vhost: "http://example.com"
- ×
vhost: "http://example.com/"
WordPress は内部的にスラッシュ抜きでサイトのベースとなる URL を保存しています。なので、vhost
の値の末尾にスラッシュが入っていると、wordmove push
や wordmove pull
に成功しても、実際にはサイトにアクセスできないとか、ダッシュボードにログインできないとか、画像がリンク切れするとかいろいろな不具合が発生します。
ここにスラッシュつけて紹介してるブログすごく多いです!気をつけましょう!
ここが正しく記述されていれば、Wordmove は、wordmove pull
や wordmove push
した時に、local
の vhost
と production
の vhost
を自動的に置換してくれます。
したがって、今回のやり方の場合、みなさんのサイトが 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:
host
、user
などの各項目を正しく設定してください。
現在では、SSH が使えないサーバーでは、Wordmove は使用できませんのであしからず。
デプロイ
以上が完了したらためしに wordmove pull -t
とかしてみましょう。
この場合、本番環境からテーマを持ってきます。
データベースの時は、wordmove pull -d
です。
すべてやるときは、wordmove pull --all
です。
逆に本番にデプロイする時は push
です。間違えないように気をつけましょう。
Wordmove は、pull
や push
した時にデータベースのバックアップを、ローカル側の wp-content/
以下に自動的に保存してくれます。
うっかり間違えてしまった時は、そのバックアップからデータベースを復活させてください。