VCCWのWordMoveを使って、X-Serverの本番環境と開発環境を同期する方法(Macで)

VCCWのWordMoveを使って、X-Serverの本番環境と開発環境を同期する方法(Macで)

WordmoveWordPressの本番環境と開発環境を同期できるツール、VCCWのWordMove。
セットアップはコマンドを叩いていくので、敷居は低くありませんが、できると簡単に同期させることができるので、とてもはかどりそうです。

前提として、VCCWのインストールが完了した状態からはじめます。
VCCWのインストールについては、WordPressのテスト環境をVCCWで構築する方法に記載してあります。

SSHの設定をする

Macのローカルで秘密鍵と公開鍵を作る

MacのCUI、「ターミナル」をつかって、秘密鍵と公開鍵の鍵ペアを生成します。
Mac ターミナル
ターミナルを起動して、公開鍵認証用の鍵ペアを作成します。

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/ユーザ名/.ssh/id_rsa): エンター
Enter passphrase (empty for no passphrase): 任意のパスフレーズ入力
Enter same passphrase again: もう一度パスフレーズ入力

作成されるとこのような表示になります。

Your identification has been saved in /Users/ユーザ名/.ssh/id_rsa.
Your public key has been saved in /Users/ユーザ名/.ssh/id_rsa.pub.
The key fingerprint is:
**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:** ユーザ名@PC名.local
The key's randomart image is:
+--[ RSA 2048]----+
|             .o  |
|             = . |
|            B +  |
|         . * + . |
|        S o = o  |
|           o o   |
|        o    ..  |
|         =. +.   |
|        E.o+.o.  |
+-----------------+

秘密鍵と公開鍵が作成されました。
秘密鍵と公開鍵

公開鍵をサーバに登録

公開鍵をサーバに登録します。
先ほど作成できた公開鍵(id_rsa.pub)をテキストエディタで開いて、内容をコピーしておきます。

X-Serverのサーバパネルから、「SSH設定」をクリック。
エックスサーバ サーバパネル
SSH設定画面から、「公開鍵登録・設定」のタブをひらいて、公開鍵(id_rsa.pub)をテキストエディタで開いてコピーしておいたものを貼り付けます。
SSH設定画面
あとは画面にしたがっていくと登録ができます。
詳しくは、X-Serverのヘルプがあります。

公開鍵の確認

ちなみに登録した公開鍵は、サーバ上では /.ssh/authorized_keys になります。

FTPクライアントソフトで、/.sshフォルダが表示されない場合、権限がないので設定するか、WebFTPから確認しましょう。
公開鍵アップ先

試しにX-ServerにSSH接続してみる

公開鍵が、authorized_keysとしてサーバ上に保存されていることが確認できたら、試しにSSH接続してみましょう。

その前に、X-ServerのサーバIDを確認します。
サーバパネルの左上に表示してあります。
X Server サーバID
Macのターミナルから、ssh サーバID@サーバID.xsrv.jp -p 10022と入力し実行します。
(サーバIDは自身のものに置き換えてください)

$ ssh サーバID@サーバID.xsrv.jp -p 10022
The authenticity of host '[サーバID.xsrv.jp]:10022 ([***.***.***.***]:10022)' 
can't be established.
RSA key fingerprint is **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**.
Are you sure you want to continue connecting (yes/no)? y(yじゃダメでした)
Please type 'yes' or 'no': yes(yesかnoで指定します)
Warning: Permanently added '[サーバID.xsrv.jp]:10022,[***.***.***.***]:10022' 
(RSA) to the list of known hosts.
Saving password to keychain failed
Identity added: /Users/ユーザ名/.ssh/id_rsa (/Users/ユーザ名/.ssh/id_rsa)
[サーバID@***** ~]$ ←SSH接続に成功!

途中でパスコード(パスフレーズ)を入力する必要があるので、鍵ペアをつくったときのパスフレーズを入力します。
パスフレーズの入力

WordMoveを実行する

Movefileの編集

VCCWをインストールした際に、WordMoveの設定ファイルのMovefileが自動で作られています。
そのままでは利用できないので、自身のX-Serverに設置した環境に合わせて変更する必要があります。
Movefile

Movefileをテキストエディタで開き、下記の内容が既に記述されているので、少し変更します。
stagingから始まる行の、各項目を変更します。

staging:
  vhost: "本番サイトのトップのURL"
  wordpress_path: "本番サイトが配置されているフォルダパス" 

  database:
    name: "本番のデータベース名"
    user: "ユーザ名"
    password: "パスワード"
    host: "データベースのURL"
    charset: "utf8"

  ssh:
    host: "サーバID.xsrv.jp"
    user: "サーバID"
    port: 10022 
    rsync_options: "--verbose" 

注意が必要なのは、wordpress_pathは絶対パスで指定する必要があること。
これは間違い例。

wordpress_path: "/ルートドメイン/public_html/サブディレクトリ/"

ではなく、次のようになります。

wordpress_path: "/home/サーバID/ルートドメイン/public_html/サブディレクトリ"

WordMoveで本番と開発環境を同期させる

ターミナルから、次のコマンドを順番に実行していきます。

$ cd VCCWのインストールしたフォルダ
$ vagrant up
$ vagrant ssh
$ cd /vagrant/

本番環境を開発環境に持ってきたいとき(本番環境→開発環境)は、
PULLします。

$ wordmove pull --all

本番環境に開発環境をデプロイしたいとき(本番環境←開発環境)は、
PUSHします。

$ wordmove push --all

–allはオプションで、他にもいろいろ指定できます。
例えば、データベースだけpullしたいときは、

$ wordmove pull --db

テーマだけpullしたいときは、

$ wordmove pull --themes

helpコマンドがあるので、忘れたら呼び出してみましょう。

$ wordmove help pull
Usage:
  wordmove pull

Options:
  -w, [--wordpress], [--no-wordpress]  
  -u, [--uploads], [--no-uploads]      
  -t, [--themes], [--no-themes]        
  -p, [--plugins], [--no-plugins]      
  -l, [--languages], [--no-languages]  
  -d, [--db], [--no-db]                
  -v, [--verbose], [--no-verbose]      
  -s, [--simulate], [--no-simulate]    
  -e, [--environment=ENVIRONMENT]      
  -c, [--config=CONFIG]                
      [--no-adapt], [--no-no-adapt]    
      [--all], [--no-all]              

Pulls WP data from remote host to the local machine

さて、これから開発環境でイジくりまわして、本番環境へデプロイをしていきますが、
おそらく色々問題が出てくると思うので、その都度記事としてアップしていきます。

ブログ・ITハックカテゴリの最新記事