wordmove

Windows10 WSL環境にWordMoveをインストール

1. はじめに

WordPressのローカル環境とサーバー環境の同期、これが今まで厄介でした。
特にローカルのDBをサーバーにアップロードした後でURLをサーバー環境に合わせて変更する必要がありました。
Search-Replace-DBというツールを使って変更していますが、WordPressの一つのウィークポイントだと思っています。
今回、この問題を解消する可能性のあるツールの存在を知りました。
WordMoveです。
このツール、LinuxとOSXでの動作を保証していますがWindowsは対象外とのこと。
ところで、Windows上でのWordPress開発環境としてはVagrant + VCCW が有名ですよね。
この環境を作成するとWordMoveが即使えるのですが、残念なことにVagrant  (正しくはVirtualBox)  はWindowsのHyper-Vと共存できないんですね。
ということで今回はVCCWではなく、Windows10のWSL上にWordMoveをインスト-ルしてみました。

 

2. インストール

まずwindows10でWSL(Windows Subsystem for Linux)を有効にします。
WSLのOSはUbuntu 18.04
WSLの有効化とubuntuのインストールについては、ここでは省略します。

WordMoveのWSL環境へのインストール方法は以下サイトに手順が説明されてます。
今回はこれに従ってインストールしていきました。
How to install Wordmove on Windows 10 with Bash

 

2.1 Wordmove

以下コマンドを実行

sudo apt-get install rubygems-integration
sudo apt-get install ruby-dev
sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install build-essential
sudo gem install wordmove

説明サイトの手順にはruby2.5のインストールがありましたが
ruby-devでインストールされたので不要でした。

 

2.2 その他

説明サイトには無かったけれど必要だった事

 

2.2.1 Mysql client
sudo apt-get install mysql-client

 

2.2.2 php
sudo apt install php7.2-cli
sudo apt install php-mysql

 

2.2.3 wp-cli

ダウンロード

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

動作確認

php wp-cli.phar --info

パーミッションと名前の変更

chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

 

3. 設定

3.1 WSL環境で秘密鍵の作成と設定

wordmoveのファイル転送にはssh またはftpの選択ができますが今回はsshの設定を行いました。
またsshは秘密鍵認証を使用しました。

 

3.1.1 秘密鍵、公開鍵ペアを作成する
ssh-keygen -t rsa

パスフレーズの設定は無し。
~/.sshにid_rsa と id_rsa.pub が作成されることを確認

 

3.1.2 公開鍵のサーバーへの設定

id_rsa.pubをサーバーにアップロードして~/.ssh/authorized_keysを作成、または追加する。

authorized_keysがサーバーに存在しない場合、新たに作成する

cat id_rsa.pub > ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys 

authorized_keysが既に存在する場合はファイルにキーを追加する

cat id_rsa.pub >> ~/.ssh/authorized_keys

 

3.2 movefile.yml ファイルの設定
3.2.1 movefile.ymlの作成

ローカルのwordpress環境に移動して以下コマンドを実行。movefile.ymlが作成される

wordmove init

 

3.2.2 movefile.ymlの更新

ここでの例はローカルサーバーはCドライブにxamppがインストールしてあり
wpフォルダにwordpressがインストールされていることを想定しています。

 

a) local

以下はmovefile.ymlのlocal部分の内容。

local:
  vhost: http://localhost/wp
  wordpress_path: /mnt/c/xampp/htdocs/wp

  database:
    name: db1
    user: user1
    password: pass1
    host: 127.0.0.1

 

b) production

wordpress_pathの部分がリモートサーバーによって変化してくるのかもしれません。
ここでは実際に使用しているcoreserverを想定しています。
xxx の部分はuserになります。
以下はmovefile.ymlのproduction部分の内容。

production:
  vhost: https://www.sample.com
  wordpress_path: /virtual/xxx/public_html # use an absolute path here

  database:
    name: db2
    user: db2
    password: pass2
    host: localhost

 

c) ssh

以下はmovefile.ymlのssh部分の内容。

ssh:
  host: xxx.remote-server.jp
  user: yyy
  rsync_options: '--chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r'

 

4.  最終確認と実行

以下のコマンドを実行し結果が全てsuccessになればインストールは終了です。

wordmove doctor

後は実際にwordmoveのpush又はpullコマンドを実行して結果を確認します。

 

5. 最後に

wordmoveコマンドは定義ファイルの内容からURLを自動的に修正してくれます。
通常のシングルサイトならほぼ問題無いと思いますが、マルチサイトはサポートしていないため、同期した後でマルチサイト固有のDBの修正が必要になります。
このあたりについては、改めて記事にしたいと思っています。

以上、長くなりましたが終了です。
ここまで読んで頂きありがとうございます。

カテゴリー : Windows, Windows10, WordPress, ブログ.