WordMoveでWordPressをバックアップする (設定・利用編)

WP Backup2WordMove/VCCW v3を使ってWordPress環境をローカルにバックアップする方法のご紹介です。2回目の今回は、動作環境の設定と実際にWordPressをバックアップするまでの手順を説明します。

1回目の準備編ではWordMoveをWindows環境上に構築するまでをご紹介しました。

WordMoveでWordpressをバックアップする (準備編)
VCCW v3のWordMoveを使ってWordPressの環境をローカルにバックアップする方法を紹介します。導入の敷居は少々高いのですが、使い勝手は他の方法よりも優れています。

コンテンツ

サーバーへのssh接続の設定

WordMoveではWordPressが動作しているサーバーとの通信にsshもしくはftpを利用します。

sshを利用する場合、仮想マシンからWordPressのサーバーに、公開鍵認証方式で接続できるよう設定しておきます。

設定手順は以下の通りです。

  1. 仮想マシン(VCCW)で公開鍵、秘密鍵を生成
  2. 公開鍵の格納場所をサーバー上に作成
  3. 公開鍵をサーバーに転送

公開鍵、秘密鍵の生成

仮想マシンにログインして以下を実行します。

ssh-keygen

途中、パスフレーズを求められるので入力します。このパスフレーズはサーバーにログインするためのものではなく、秘密鍵にアクセスするための文字列です。

パスフレーズを指定しないこともでき、この場合はパスフレーズの入力なしにサーバーにログインできるようになります。

コマンドが終了すると、id_rsa と id_rsa.pub という2種類のファイルが$home/.ssh以下に生成されます。前者が秘密鍵、後者が公開鍵です。

公開鍵の格納場所を作成

次にサーバーにログインして、公開鍵を格納するディレクトリおよびファイルを作成します。user@remotehostの部分は皆さんの環境に合わせて変えてください。

ssh user@remotehost

ログインしたら公開鍵の格納場所作成してアクセス権限を設定します。なお、すでに .ssh や authorized_keysがある場合は最初の2行は不要です。

mkdir .ssh
touch .ssh/authorized_keys
chmod 700 .ssh
chmod 600 .ssh/authorized_keys

サーバーに公開鍵を転送

ローカルの仮想マシンにある公開鍵の内容をサーバーのauthorized_keysに格納します。いろいろな方法があるかと思いますが、例えば、ローカル側で以下のコマンドを実行します。

cat ~/.ssh/id_rsa.pub | ssh user-name@remote-server 'cat >> .ssh/authorized_keys'

WordMoveの動作環境設定

WordMoveの動作はMovefileというファイルで設定します。格納場所はVCCWがインストールされているフォルダ直下にあります。

このフォルダは仮想マシンでは /vagrant という場所にマウントされています。Windowsのメモ帳では改行コードの関係で編集が難しいので、適切なエディタがない場合には、仮想マシン上のviなどを使って編集すればよいでしょう。

Movefileには大きく分けてローカル側の設定(local)とサーバー側の設定(production)が記述されています。ローカル側は既に設定済みなので、以下に示した「production:」と記されている場所以降の設定項目を編集していきます。

production:
  vhost: "http://example.com"
  wordpress_path: "/var/www/your_site" # use an absolute path here

  database:
    name: "database_name"
    user: "user"
    password: "password"
    host: "host"
    port: "3308" # Use just in case you have exotic server config
    mysqldump_options: "--max_allowed_packet=50MB" # Only available if using SSH

  exclude:
    - ".git/"
    - ".gitignore"
    - ".sass-cache/"
    - "bin/"
    - "tmp/*"
    - "Gemfile*"
    - "Movefile"
    - "wp-config.php"
    - "wp-content/*.sql"

  ssh:
    host: "host"
    user: "user"
    port: 22
    rsync_options: --verbose

編集する項目は以下の4つで、上のリストでハイライトされている部分に相当します。

  1. WrodPressサーバーのURL
  2. WordPressのインストールパス
  3. データベース接続設定
  4. ssh接続設定

なお、設定ファイルの編集にあたって注意しなければならないのは、インデントを変えないようにすることです。最初の「production:」の行のインデントはなく、それ以降空白スペース2個分のインデントがあります。これを少しでも変えてしまうとWordMoveが設定を読めなくなってしまいます。

以下順番に説明していきます。

サーバーURLとインストールパス

production:
  vhost: "https://curosan.com"
  wordpress_path: "/home/username/public_html"

vhostにはサーバーのURLを設定します。私のサイトの場合は ”https://curosan.com” となります。

もし、public_html直下ではなく、サブディレクトリにWordPressのコアファイルを展開しているのであればそれを含めて指定します。例えば ”https://curosan.com/wordpress” といった具合です。

wordpress_pathはサーバー上で上記ファイルがある場所を絶対パスで指定します。ファイルの配置場所はホスティングサーバによって様々ですが、例えば、 ”/home/ユーザー名/public_html” といった具合になります。

データベース接続設定

  database:
    name: "データベース名"
    user: "ユーザー名"
    password: "パスワード"
    host: "localhost"
    charset: "utf8"
    port: "3308" # Use just in case you have exotic server config

データベース名、ユーザ名、パスワードはサーバー側のWordPressが利用しているMySQLの接続設定に合わせて指定します。

hostはほとんどが”localhost”ではないかと思いますが、データベースサーバーが外部にある時はそのIPアドレスを指定します。

上記にもあるとおり、私の場合は海外のホスティングサービスを使っているので、追加で charset の指定も行いました。

ssh接続設定

  ssh:
    host: "ssh.curosan.com"
    user: "username"
    port: 22

WordMoveがサーバーにssh接続するためのホスト名、ユーザー名を指定します。

ホスト名は通常はサイトのURLと同じものだと思いますが、私の場合はCDNサービスであるCloudFlareを使った時に問題が出たので、上記のようなサイトの別名をDNSに設定してここで使っています。

以上でWordMoveの設定は完了です。

WordMoveの使い方

WordMoveは仮想マシン上で動作するため、以下のような流れで利用します。

  1. Windowsのコマンドプロンプトから仮想マシンを起動
  2. 起動した仮想マシンにsshでログイン
  3. 仮想マシン上でWordMoveを実行

仮想マシンの起動

vagrant up

vccwがあるフォルダで上記のvagrantコマンドを実行します。

仮想マシンにログイン

vagrant ssh

適切なsshクライアントがインストールされていれば、上のコマンドで仮想マシンにsshログインされます。
私の場合はsshクライアントとしてteratermを使うためのプラグインを導入しており、以下のコマンドを使っています。

vagrant teraterm

仮想マシン上でWordMoveコマンドを実行

仮想マシンにログインしたら、以下の手順でリモートホスト上のWordPress環境をローカルにバックアップします。

cd /vagrant

まずは上記で/vagrantに移動します。このディレクトリにはホストマシンのvccwフォルダ(例えばD:\vccwなど)がマウントされています。

wordmove pull --all

次にwordmoveコマンドを上のような引数を付けて実行します。

引数の”pull”はリモートホストからローカルへの取得、”–all”を指定することによりすべての情報を取得します。最初はローカル上には何もない状態なので上の指定によりデータベースを含めた全ファイルを取得します。

第一引数はpullもしくはpush。前者はリモートホストからローカルへ、後者はローカルからリモートホストへ情報を送るよう指定するものです。

pushを指定するとローカルの情報によってリモートホストの情報が書き換えられます。バックアップ用途には使わないのですが、pushを利用することがある場合はご注意下さい。

指定可能な主な第二引数は以下の通りです。これらの引数はpull/push共通です。

  • --all: 全ファイルを同期
  • -u: uploads フォルダを同期
  • -t: theme フォルダを同期
  • -p: plugins フォルダを同期
  • -d: データベースを同期 (mysqldumpとmysqlコマンドを利用)
  • -s: テスト用。リモートサーバとの接続チェックなどに利用する。

なお、終了は仮想マシンからログアウト後、Windows側で下記を実行します。

vagrant suspend

上のコマンドは仮想マシンを休止状態にするものですが、シャットダウンしたい時は下記のコマンドになります。

vagrant halt

バッチファイルとエイリアスを使って簡単実行

最後に今まで紹介した手順を簡単に実行する方法です。今までの手順をまとめて、私は以下のようなバッチファイルとエイリアスを使っています。

バッチファイル

d:
cd \vccw
vagrant resume
vagrant teraterm
pause
vagrant suspend
pause

エイリアス

以下の内容を仮想マシンの .bashrc内に記載します。”wmpa”がコマンド名になるので、適宜覚えやすい名前を指定下さい。

alias wmpa="cd /vagrant; wordmove pull --all"

以上のファイルを準備しておけば、バッチファイル(例えばvccw.bat)を実行すると仮想マシンが起動し、ログインまで完了します。

ログインした仮想マシンのプロンプトで”wmpa”と入力すればバックアップが始まります。

バックアップ終了後、仮想マシンからログアウトすれば、仮想マシンの休止まで行なわれます。

以上、WordMoveの動作環境設定とその実行方法についてご紹介しました。