先日、WordPressのデプロイはwordmoveが超おすすめ!という記事で、wordpressのデプロイにFTPやGitではなく、wordmoveを利用するのが良いということを述べました。
今回は、wordmoveを実際に利用するために、インストール方法や利用するコマンドについてまとめました。
wordmoveを利用すると、
- ローカルで開発したテーマのアップロードおよび設定
- 既に作成されているwordpressサイトをローカルに構築
などにおいて劇的に楽になりますので、利用することをおすすめします。
目次
wordmoveの概要
wordmoveは、基本的に上図の「1」「3」のことしか行いません。
- サーバーからwordpressサイトをダウンロード(pull)
- ローカルのwordpressサイトをサーバーにアップロード(push)
これらの ダウンロード / アップロード 時に、テーマファイルのみやデータベースのみなど粒度を設定して行うことができます。
wordmoveのインストール方法
wordmoveはローカルPCから実行して利用しますので、ローカルにwordmoveをインストールします。
また、wordmoveはgemで配布されていますので、rubyをインストールする必要があります。(Macではデフォルトで入っています)
rubyをインストールした状態で、下記を実行してwordmoveをインストールします。
$ gem install wordmove
そして、下記を実行して、バージョン番号が返って来ればインストール完了です。
$ wordmove --version
# → 2.3.0
wordmoveの設定・movefileの作成
ローカルのwordpressのディレクトリにて、下記を実行すると現在のディレクトリにmovefile.yml
が作成されます。
$ wordmove init
wordmoveを利用するために、ローカルのどのサイトを本番環境のどこに移すのかという情報を設定する必要があります。
例として、以下のようになります。
# wordmove.yml
global:
sql_adapter: "default"
local:
vhost: "http://wordpress-test.com"
wordpress_path: "/Users/taro/develop/wordmove-test"
database:
name: "database_name"
user: "user"
password: "password"
host: "127.0.0.1"
production:
vhost: "http://wordpress.com"
wordpress_path: "/var/www/wordpress"
database:
name: "database_name"
user: "user"
password: "password"
host: "host"
exclude:
- ".git/"
- ".gitignore"
- ".sass-cache/"
- "node_modules/"
- "bin/"
- "tmp/*"
- "Gemfile*"
- "Movefile"
- "movefile"
- "movefile.yml"
- "movefile.yaml"
- "wp-config.php"
- "wp-content/*.sql.gz"
ssh:
host: "host"
user: "user"
password: "password"
local・productionと、環境毎に設定を記述します。stagingなど、検証環境の情報を追記することも可能です。
vhost
は、一般設定 > WordPressアドレスの値を設定します。
wordpressはデータベースにサイトURLを保存していますので、デプロイした際にwordmoveがこれを元に書き換えてくれます。
wordpress_path
は、wordpressサイトが存在するディレクトリのパスを絶対パスで記述します。
database
は、wordpressサイトが接続しているデータベースの情報を記述します。
データベースの移行も行いますので設定する必要があります。
exclude
は、ファイルを移行する際に、除外するファイルを指定します。wp-config.php
は環境毎に異なる内容となりますので、こちらに含まれます。
ssh
は、SSHの接続情報です。.ssh/config
などで設定されていれば、こちらの設定は不要です。
利用するコマンド
wordmoveの概要で述べたように、基本的にpull
とpush
のコマンドのみを利用します。
そして、pull/pushする内容の粒度をオプションで指定します。
また、wordmoveのコマンドは、movefile.yml
が存在する場所で実行します。
ダウンロード/アップロード
$ wordmove pull
$ wordmove push
オプション
wordmoveは以下のオプションが利用できます。
ファイル/データベース/環境を指定することができます。
オプション | 内容 |
---|---|
–all | 全てのファイルおよびデータベース |
-w, –wordpress | wp-content 以外のファイルを対象 |
-u, –uploads | wp-content/upload のファイルを対象 |
-t, –themes | wp-content/themes のファイルを対象 |
-p, –plugins | wp-content/plugins のファイルを対象 |
-m, –mu-plugins | wp-content/mu-plugins のファイルを対象 |
-l, –languages | wp-content/languages のファイルを対象 |
-d, –db | データベースが対象 |
-e, –environment | ymlファイルで記述している環境に対して実行. 例 -e staging |
開発・運用のワークフロー
基本的に、上図のように
- 開発前にローカルを最新状態にする。
- ローカルで開発する
- 検証/本番環境にアップする
という流れになります。
非常にシンプルなワークフローになりますが、wordmoveを利用したワークフローでは、「ファイルやデータの同期はできるが、マージすることはできない」という点に注意しなければなりません。
例えば、
開発途中であるが、ある機能まで開発が終わり、検証環境で実データの投入を別の人が行なっている。
という状況で、開発者がローカル環境でデータベースの変更を含む修正を行い、データベースを含めてデプロイすると、検証環境で入れていたデータ失われることにもなります。
また、デプロイする前に検証環境の情報をローカルに全て取り込むと、開発していた情報が失われてしまいます。
一人で運用している場合は問題ありませんが、複数人で分業しているような場合は
- データ投入している場合は、デプロイはテーマファイルのみを対象とする
- 開発中は、データ登録などの作業を止めてもらう
などの対策が必要かと思います。
現実的には、前者のように運用することになると思います。
まとめ
本記事で、wordmoveをインストールから運用方法までをまとめました。
基本的にはこの情報のみで問題無いかと思います。
コメントを残す