wordmoveによるローカルとサーバーの同期

以下の続きです。

まずは、WordPressのローカル開発環境を作るため、VCCWを導入します。以下のサイトを主に参考にしました。 VirtualBox VirtualBoxとは、オラクルの開発するx86仮想化ソフトウェア・パッケージ。一言でいえば、windows上で...

VCCWを導入し、WordPress用のローカル環境ができたので、ローカル環境とサーバーをコマンドで同期できるようにします。

仮想環境からサーバへのSSH接続

SSH接続

SSHとは、他のコンピューターに安全に接続するための方法です。

Secure Shell(セキュアシェル、SSH)は、暗号認証の技術を利用して、安全にリモートコンピュータと通信するためのプロトコルパスワードなどの認証部分を含むすべてのネットワーク上の通信が暗号化される。

https://ja.wikipedia.org/wiki/Secure_Shell

インフラエンジニアじゃなくても押さえておきたいSSHの基礎知識

仮想環境からXSERVERへSSH接続できることで、双方のファイルのやり取りを簡単に行えるようになります。

SSH接続の設定

仮想環境で鍵を作成

コマンドプロンプトから以下のコマンドでvagrantを起動して、仮想環境に接続します。

vagrant up
vagrant ssh

仮想環境に接続したら、以下のコマンドで鍵を作成し、また鍵のパーミッションを変更しておきます。

$ ssh-keygen
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/id_rsa

鍵をXSERVERに登録

仮想環境で、以下のコマンドにより作成した公開鍵の内容を表示します。

$ cd .ssh
$ more id_rsa.pub

表示された公開鍵を、XSERVERのサーバーパネル内のSSH設定というところで、公開鍵として登録します。

接続の確認

下記のコマンドで、仮想環境からXSERVERへ接続してみます。

ssh サーバーID@サーバーID.xsrv.jp -p 10022

無事に接続できれば、仮想環境からXSERVERへSSH接続できるようになっています。

wordmoveでローカルとサーバーを同期する

movefile.yml

VCCWを導入したディレクトリにmovefile.ymlというファイルがあります。このファイルの中に、wordmoveの設定を書きます。

公式サイトの説明は、英語になりますが、下記です。そちらにも書いてありますが、YAMLではデータ構造を表すためにスペース2つを使います。

movefile.yml configurations explained

また、.ymlとはヤムルと呼ばれるファイル形式で、設定を保存する時などによく使われる形式です。

wikipedia YAML

今回は、movefile.ymlに、下記のような設定を記述します。

global:
  sql_adapter: default

local:
  vhost: "ローカルのホスト名"
  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_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: "本番環境のホスト名"
  wordpress_path: "/home/サーバーID/ホスト名/public_html" # use an absolute path here

  database:
    name: "本番環境のDBの名前"
    user: "本番環境のDBのユーザー"
    password: "本番環境のDBのパスワード"
    host: "本番環境のDBのホスト名"
    port: "3306" # 3308から変更
    mysqldump_options: "--max_allowed_packet=50MB" # Only available if using SSH

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

  ssh:
    host: "本番環境のホスト名"
    user: "サーバーID"
    port: 10022
    rsync_options: --verbose

wordmoveコマンドによる同期

movefile.ymlの記述が終わると、wordmoveというコマンドで、ローカルとサーバーの同期ができるようになっています。

以下は公式のコマンドの説明です。

Usage and flags explained

まずは、下記のようにサーバーからローカルにpullしてみます。

$ cd /vagrant/
$ wordmove pull --all

逆に、ローカルのファイルをサーバーにpushuするのは下記のコマンドです。

$ cd /vagrant/
$ wordmove push --all

pull と push は、–all 以外に、色々なオプションをとることができます。例えば、オプションを -t にすることで、テーマのみが対象になります。

$ cd /vagrant/
$ wordmove push -t