KUSANAGIにwordmoveをインストールする

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

前々回はKUSANAGIをセットアップして、WordPressが動く所までこぎ着けました。

前回はSSHを設定してリモート管理できるようにしました。

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

新規ブログであれば後は記事を追加してゆくのみですが、

  • 旧サーバーのブログを新サーバーに移行したい
  • 正サーバーと副サーバーでデータを同期させたい

こういった場合には記事データのコピーが必要です。

移行の方法には色々あると思いますが、私の場合はcronで正サーバー(エックスサーバー)を副サーバー(ConoHa+KUSANAGI)に同期を取りたかったのでwordmoveを使いました。

もくじ(押すと各章に飛ぶ)

wordmoveのインストール

作業ユーザからrootになる

[fuka@163-44-169-228 ~]$ su

rubygemsをインストール

wordmoveをインストールするためには先ずrubygemsというパッケージ管理ツールをインストールしなければなりません。

OSのツールは yum 、rubyスクリプトは rubygems がインストーラーという対応関係です。

ドザ的解釈ではSetup.exeChocolateyですかね。

[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 installed

Linuxは便利ですね。2つコマンドを打っただけで入っちゃいました。

以後、wordmoveというコマンドが使えるようになります。

wordmove設定

rootからkusanagiになる

WordPressの各種ファイルはkusanagiが所有者になっています。

rootwordmoveを実行するとファイルの所有者がrootになります。

権限不足などトラブルの元になるような気がするのでkusanagiに代わります。

[root@163-44-169-228 fuka]# su kusanagi

DocumentRootに移動

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 Movefile

Movefile編集

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にコピーされます。
pushpullを間違えると大事故になりますので要指差し確認ポイントですね。

もう一息…だが…

やったあ!完成だあ!

…と思いきや、管理画面を開くとCAPTCHAが表示されないのでログインできない…。

screenshot_20161130_212029

どうも「SiteGuard WP Plugin」とKUSANAGIの相性が良くないようです。

SiteGuard用テンポラリディレクトリに何らかの原因で画像ファイルが作られていません。

(2017/04/30追記)
テンポラリ用ディレクトリにグループ書き込み権限を与えると表示されるようになります。

関連記事

こちらの記事では「ConoHaにKUSANAGIをインストールしてWordPressサーバーを公開する」までを扱っています。

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

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

お役に立てたらシェアお願いします(^O^)/
  • URLをコピーしました!
もくじ(押すと各章に飛ぶ)