全体のインストール手順は👇を参照ください。

前々回はKUSANAGIをセットアップして、WordPressが動く所までこぎ着けました。
前回はSSHを設定してリモート管理できるようにしました。
本記事はKUSANAGIへwordmoveをインストールする手順です。
(もしUbuntuへwordmoveをインストールする手順をお探しでしたら、こちらを参照ください)
新規ブログであれば後は記事を追加してゆくのみですが、
- 旧サーバーのブログを新サーバーに移行したい
 - 正サーバーと副サーバーでデータを同期させたい
 
こういった場合には記事データのコピーが必要です。
移行の方法には色々あると思いますが、私の場合はcronで正サーバー(エックスサーバー)を副サーバー(ConoHa+KUSANAGI)に同期を取りたかったのでwordmoveを使いました。
wordmoveのインストール
作業ユーザからrootになる
[fuka@163-44-169-228 ~]$ surubygemsをインストール
wordmoveをインストールするためには先ずrubygemsというパッケージ管理ツールをインストールしなければなりません。
OSのツールは yum 、rubyスクリプトは rubygems がインストーラーという対応関係です。
ドザ的解釈ではSetup.exeとChocolateyですかね。
[root@163-44-169-228 fuka]# yum install rubygems
読み込んだプラグイン:fastestmirror
base | 3.6 kB 00:00:00 
:
インストール:
rubygems.noarch 0:2.0.14-25.el7_1
依存性関連をインストールしました:
ruby.x86_64 0:2.0.0.598-25.el7_1 ruby-irb.noarch 0:2.0.0.598-25.el7_1 
ruby-libs.x86_64 0:2.0.0.598-25.el7_1 rubygem-bigdecimal.x86_64 0:1.2.0-25.el7_1 
rubygem-io-console.x86_64 0:0.4.2-25.el7_1 rubygem-json.x86_64 0:1.7.7-25.el7_1 
rubygem-psych.x86_64 0:2.0.0-25.el7_1 rubygem-rdoc.noarch 0:4.0.0-25.el7_1
完了しました!wordmoveをインストール
rubygemsをインストールするとgemコマンドが使えるようになります。
gemを使ってwordmoveをインストールします。
[root@163-44-169-228 fuka]# gem install wordmove
Fetching: colorize-0.7.7.gem
:
Installing ri documentation for wordmove-2.0.0
12 gems installedLinuxは便利ですね。2つコマンドを打っただけで入っちゃいました。
以後、wordmoveというコマンドが使えるようになります。
wordmove設定
rootからkusanagiになる
WordPressの各種ファイルはkusanagiが所有者になっています。
rootでwordmoveを実行するとファイルの所有者がrootになります。
権限不足などトラブルの元になるような気がするのでkusanagiに代わります。
[root@163-44-169-228 fuka]# su kusanagiDocumentRootに移動
WordPressの設置ディレクトリに移動します。
[kusanagi@163-44-169-228 ~]$ cd ~/kusanagi_test/DocumentRoot/Movefile作成
wordmove initを実行すると、DocumentRoot直下にMovefileというテキスト形式の設定ファイルが出来ます。
wordmoveはこの設定を読み取って動作します。
[kusanagi@163-44-169-228 DocumentRoot]$ wordmove init
create MovefileMovefile編集
Movefileをエディタで開き、
[kusanagi@163-44-169-228 DocumentRoot]$ vi Movefile下記のように設定します。
local:
  vhost: "http://163.44.169.228"
  wordpress_path: "/home/kusanagi/kusanagi_test/DocumentRoot" # use an absolute path here
  database:
    name: "DB名"
    user: "DBユーザ名"
    password: "DBパスワード"
    host: "localhost"
production:
  vhost: "https://ygkb.jp"
  wordpress_path: "/home/ygkb/ygkb.jp/public_html" # use an absolute path here
  database:
    name: "DB名"
    user: "DBユーザ名"
    password: "DBパスワード"
    host: "mysql****.xserver.jp"
  exclude:
    - ".git/"
    - ".gitignore"
    - ".sass-cache/"
    - "node_modules/"
    - "bin/"
    - "tmp/*"
    - "Gemfile*"
    - "Movefile"
    - "wp-config.php"
    - "wp-content/*.sql"
    - ".htaccess"
  ssh:
    host: "sv****.xserver.jp"
    user: "SSHユーザ名"
    port: 10022 # Port is optional
    rsync_options: "--verbose" # Additional rsync options, optional
localにはConoHa側の情報を、production側にはエックスサーバー側の情報を設定します。
幾つかのポイントを。
- vhost欄を適切に設定しておくとデータコピー時に記事中のURLを自動置換してくれます。
 - インデント位置とインデント文字に超デリケートです。
インデント文字は半角スペースでなければならないようで、気付かずタブを入れていたため動かず、ハマりました。 - 私なりの隠し味は exclude 節の 
.htaccessです。
これが無いとエックスサーバー用の.htaccessがコピーされてしまい動作不良の原因になりました。これは各ホストで設定を分けて吸収するしか無いと思います。 sshがハマりました。- 私はサーバ毎に秘密鍵を使い分けているので、各接続先毎に「
相手先サーバ名.pem」という名前で秘密鍵ファイルを置いています(却って危ないのかね?この運用)。 
sshコマンド単体では接続できるのに、wordmove(rsync)では「Permission Denied」で動かないので何でかなあと悩んでいましたが、多分都度秘密鍵ファイルの場所を指定しなきゃいけない(rsync_optionsにssh -iオプションを付けなきゃいけない)んでしょうね。多分。
- rsync_optionsにそういう指定ができるか自信が無かったので、秘密鍵ファイルの名前をデフォルト値(
id_rsa)にしたら動くようになりました。 
- 私はサーバ毎に秘密鍵を使い分けているので、各接続先毎に「
 
wordmove実行
wordmove pull --allを実行すると、エックスサーバーの内容がConoHaにコピーされます。pushとpullを間違えると大事故になりますので要指差し確認ポイントですね。
もう一息…だが…
やったあ!完成だあ!
…と思いきや、管理画面を開くとCAPTCHAが表示されないのでログインできない…。

どうも「SiteGuard WP Plugin」とKUSANAGIの相性が良くないようです。
SiteGuard用テンポラリディレクトリに何らかの原因で画像ファイルが作られていません。
(2017/04/30追記)
テンポラリ用ディレクトリにグループ書き込み権限を与えると表示されるようになります。
関連記事
こちらの記事では「ConoHaにKUSANAGIをインストールしてWordPressサーバーを公開する」までを扱っています。

もし、Ubuntuへwordmoveをインストールする手順をお探しでしたら、この記事を参照ください。

この他にもWeb開発に関するトピックはこちらに集めています。

