WordMoveでWordPressの本番環境とローカル環境をらくらく同期する方法

wordmove

WordPressの開発をしていて、以下のようなことありませんか?

「WordPressの本番環境まるごとローカル環境に構築したい」
「本番で投稿するたびにローカル環境にも反映させるのが大変」
「開発したテーマファイルをかんたんに本番に反映させたい」

これらぜんぶ、WordMoveを使えばかんたんに実現できます。WordMoveの使い方について説明します。当記事は以下の内容です。

  • WordMoveとは
  • SSH接続設定
  • Movefile設定
  • WordMove使い方

ローカル環境の構築はWordPressローカル環境構築におすすめ!VCCW導入手順をご覧ください。

当記事はVCCWを導入されている方を対象にしています。VCCWにWordMoveが同梱されているので、個別インストールは不要です。Macでの説明ですが、その他OSでも似たような感じです。

スポンサーリンク

WordMoveって何?

WordPressのデータをサーバー間でやりとりできるものです。初期設定さえ済んでいれば、コマンド一発でやりとりできます。

やりとりできるもの

以下が一例です。かなり細かく指定できます。

  • WordPressまるごとぜんぶ
  • WordPressソースファイル
  • テーマファイル
  • データベース(投稿データなど)
  • プラグイン
  • Upload画像

WodeMoveのコマンド実行時のオプションで指定できます。個別指定も同時指定(テーマファイルとプラグインなど)もできます。

どうやってやりとりする?

設定ファイルで本番環境とローカル環境を指定します。コマンドを実行すると指定した環境間でやりとりされます。接続方法はSSH接続、FTP接続があります。当記事ではSSH接続について説明します。

本番とローカルの差を意識しなくていい

本番とローカルでURLやデータベースが違いますよね。その書き換えも自動で行ってくれます。また、wp-config.phpファイルはやりとりしない(することもできる)ので、本番とローカルでそれぞれwp-config.phpを設定すれば、毎回書き換える必要はありません。

つまり、何もしなくていいんです。

SSH接続設定

本番とローカルのやりとりをSSH接続で行います。まずは設定しましょう。

設定を始める前に − SSH接続の認証方式について

SSH接続認証方式が二つあります。

  • パスワード認証
  • 公開鍵認証

すごく単純に言うと、公開鍵認証の方がセキュリティ的に安全です。公開鍵と秘密鍵をローカルで作成し、公開鍵を本番に置き、秘密鍵を持った端末からアクセスすることで認証処理をします。

本記事では公開鍵認証の方式で説明します。パスワード認証でかまわない方は、以降の公開鍵認証の説明は読み飛ばしてMovefileの設定に進んでください。

やることリスト

  • Mac(ローカル)で公開鍵、秘密鍵を作成
  • 公開鍵を本番へ転送
  • Macのキーチェーンに秘密鍵のパスフレーズを保存

Macで公開鍵、秘密鍵を作成する

Macで公開鍵、秘密鍵を作成します。

コマンドを実行します。

ssh-keygen -t rsa

メッセージが表示されるので、パスワードを入力します。

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/username/.ssh/id_rsa):←そのままEnter
Enter passphrase (empty for no passphrase):←パスワードを入力する
Enter same passphrase again:←パスワードを再入力する

メッセージが表示され、公開鍵と秘密鍵が作成されます。

Your identification has been saved in /Users/username/.ssh/id_rsa.
Your public key has been saved in /Users/username/.ssh/id_rsa.pub.

公開鍵のアクセス権限を変更

公開鍵ファイルを自分以外が読み書きできないように権限を設定します。権限の変更がピンとこない方はおまじないと思ってもらえればいいです。

コマンドを実行します。

chmod 600 ~/.ssh/id_rsa.pub

結果は特に出力されません。

公開鍵をレンタルサーバーへ転送

scpコマンドを使用して転送します。scpとは、ファイルをssh接続で転送するコマンドです。以下はさくらインターネットの場合の説明です。接続先サーバーによって読み替えてください。

コマンドを実行します。(ユーザ名ドメインは書き換えてください)

scp ~/.ssh/id_rsa.pub さくらユーザー名@初期ドメイン.sakura.ne.jp:~/.ssh/authorized_keys
さくらユーザー名@初期ドメイン.sakura.ne.jp's password:←さくらの初期ドメインパスワードを入力

接続に成功するとファイルが転送されます。

id_rsa.pub                                    100%  413     0.4KB/s   00:00

公開鍵でSSH接続してみる

公開鍵認証でSSH接続してみます。同時にMacの場合、キーチェーンに保存することで次回以降のパスフレーズ入力を省略できます。

ssh さくらユーザー名@初期ドメイン.sakura.ne.jp

パスフレーズ入力画面が出てきます。秘密鍵作成時のパスフレーズを入力し、「パスワードをキーチェーンに保存」をチェックします。

wordmove01

Identity added: /Users/username/.ssh/id_rsa (/Users/username/.ssh/id_rsa)
Last login: Sat May 14 07:52:47 2016 from ***************
FreeBSD 9.1-RELEASE-p24 (SAKURA17) #0: Thu Feb  5 10:03:29 JST 2015

Welcome to FreeBSD!

無事接続できました。

合わせて転送した公開鍵を読み取り専用に権限変更します。 接続した状態で、以下のコマンドを実行します。

chmod 400 ~/.ssh/authorized_keys

結果は特に出力されません。

Movefileを設定する

WordMoveでデータをやりとりするとき、Movefileに書かれている情報を元に行います。ローカル環境と本番環境の情報を設定しておくことでやりとりできます。ローカル環境の情報は自動でセットされています。なので本番環境の情報を追記します。

設定する内容は本番環境の

  • URL
  • WordPressインストールディレクトリ
  • データベース情報
  • SSHホスト名、ユーザ名

です。

Movefileの設定情報編集

さっそくMovefileを編集していきましょう。MovefileはVCCWインストールフォルダ(vccw-2.19.0など)直下にあります。適当なテキストエディタで開いてください。

Movefileを開くと、

local:
  vhost: "https://webtatan.com/blog"
  wordpress_path: "/home/t-t-portfolio/www/blog"

  database:
    name: "wordpress"
    user: "wordpress"
    password: "wordpress"
    host: "localhost"

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

  database:
    name: "database_name"
    user: "user"
    password: "password"
    host: "localhost"    
(以下省略)

このようになっています。最初の”local”というのが自分のローカル環境で、書き換え不要です。

stagingの内容を書き換えます。ここで大事なのが、インデントです。インデントの深さで設定情報を判断します。少しでもずれると正しく認識されません。

staging: #←インデントなし
  vhost: "http://example.com"#←インデント半角スペース2個
  wordpress_path: "/var/www/your_site" # use an absolute path here

  database: #←インデント半角スペース2個
    name: "database_name"#←インデント半角スペース4個

これが正しいインデントです。書き換えたときにずれないようにしましょう。

stagingの部分を以下の要領で書き換えてください。

vhost: "本番URL"
wordpress_path: "本番WordPressインストールディレクトリ" # use an absolute path here

database:
  name: "データベース名"
  user: "データベースユーザー名"
  password: "データベースパスワード"
  host: "データベースホスト"
  charset: "utf8" #← さくらレンタルサーバーのみ追加

vhostは当サイトの場合、https://webtatan.com/blog
wordpress_pathはさくらサーバーの場合、/home/ドメインユーザー名/www/などになります。

データベースの情報はさくらレンタルサーバーの場合、コントロールパネルにログインし、データベースの設定を開くと確認できます。さくらの場合、データーベースのcharsetを指定する必要があります。

他のレンタルサーバーなどの場合、公式サイトで確認してみてください。

続いて、Movefileの下の方にある、SSH接続情報を書き換えます。#はコメントの意味です。書き換えるときに削除します。

# ssh:
 #  host: "host"
 #  user: "user"
 #  password: "password" # password is optional, will use public keys if available.
 #  port: 22 # Port is optional
 #  rsync_options: "--verbose" # Additional rsync options, optional

以下の要領で書き換えてください。インデントがずれないように注意してください。

ssh:
    host: "ドメイン名(当サイトの場合webtatan.com)"
    user: "ドメインユーザー名"
    password: "password" # password is optional, will use public keys if available.
    port: 22 # Port is optional
    rsync_options: "--verbose" # Additional rsync options, optional

passwordは公開鍵認証の場合は不要なので行ごと削除します。パスワード認証の方はパスワードを追記します。port、rsync_optionsはコメント(#)を消すだけでいいです。

以上で初期設定が完了しました。おつかれさまでした。

WordMoveの使い方

WordMoveを使う準備ができました。さっそく使ってみましょう。

使い方は

  • Vagrantを起動(vagrant up)
  • 仮想マシンにSSH接続(vagrant ssh)
  • 仮想マシンでディレクトリ変更(cd /vagrant)
  • WordMoveコマンド実行

の流れです。vccwインストールフォルダ(vccw-2.19.0など)に移動し、最初の三つのコマンドを実行してみてください。以下のように表示されます。

vagrant ssh
Last login: Sat May 14 23:42:18 2016 from 10.0.2.2
                   ___           ___           ___
      ___         /  /\         /  /\         /__/\
     /__/\       /  /:/        /  /:/        _\_ \:\
     \  \:\     /  /:/        /  /:/        /__/\ \:\
      \  \:\   /  /:/  ___   /  /:/  ___   _\_ \:\ \:\
  ___  \__\:\ /__/:/  /  /\ /__/:/  /  /\ /__/\ \:\ \:\
 /__/\ |  |:| \  \:\ /  /:/ \  \:\ /  /:/ \  \:\ \:\/:/
 \  \:\|  |:|  \  \:\  /:/   \  \:\  /:/   \  \:\ \::/
  \  \:\__|:|   \  \:\/:/     \  \:\/:/     \  \:\/:/
   \__\::::/     \  \::/       \  \::/       \  \::/
       ~~~~       \__\/         \__\/         \__\/

http://vccw.cc/

Initial code by Takayuki Miyauchi.
https://github.com/miya0001
cd /vagrant
 

この状態でWordMoveのコマンドを実行します。

本番環境からWordPressまるごとぜんぶ持ってくる

ローカル環境を作成し、まだ本番環境から持ってきてない場合など、全部持ってきたい場合、以下のコマンドを実行します。

wordmove pull --all
-allではなく、–all(半角ハイフン2個)です。

ターミナルにいろいろ表示され、ぜんぶとってきます。サイトを表示してみてください。 https://webtatan.com/blog/

もし、うまく表示されない場合、後半に対応方法を書いてますので見てみてください。

pullとpushを間違えない

Wordmoveのコマンドには大きく分けて”pull”と”push”があります。

  • pull(本番環境からローカル環境へコピー
  • push(ローカル環境から本番環境へコピー

pullとpushを間違えると大変なことになります。

pullはローカル環境が上書きされるだけですが、間違ってpushしちゃうと本番環境のみ投稿していたデータなどが消えてしまうので、慎重に作業してください。

WordMoveコマンド一覧

コマンド一覧です。ぜんぶpullで説明しますが、pushでも同じです。(pullをpushに書き換えるだけ)

  • wordmove pull –all → WordPressまるごとぜんぶ
  • wordmove pull -w → WordPressソースファイル
  • wordmove pull -t → テーマファイル(themeフォルダ以下ぜんぶ)
  • wordmove pull -d → データベース(投稿データなど)
  • wordmove pull -p → プラグイン
  • wordmove pull -u → uploads(画像など、uploadsフォルダ以下ぜんぶ)

複数同時指定も可能です。

  • wordmove pull -t -d -p(テーマファイル、データベース、プラグインを指定)

その他、以下もあります。あまり使わないかもしれません。

  • wordmove pull -c → wp-config.php
  • wordmove pull -l → languagesフォルダ
  • wordmove pull -s → ドライラン(コマンドを実行せずにコマンド確認だけする)
  • wordmove pull -v → コマンドメッセージ詳細表示
  • wordmove pull -e → 環境指定(Movefileにstaging、local以外がある場合)

Wordmoveコマンドは成功しているのにサイトが表示されない場合

Wordmove pull –allしてぜんぶとってきたのにサイトがうまく表示されない。そんなときは以下を確認してみてください。

データベース接続エラー

wp_config.phpのデータベース設定を確認してみてください。通常は同期されないため問題ないのですが、意図的に同期した場合や、本番環境のwp_config.phpを間違って持ってきたなどないか確認してみてください。

トップは表示されるが下層ページがエラー

管理画面にログインしてみてください。ログインできるなら、設定のパーマリンク設定を何も変更せずに更新してみてください。

ローカルURLにアクセスしても本番URLが表示される

ローカルの.htaccessを確認してください。本番用のリダイレクトの記述があると、リダイレクトしてしまいます。本番用のリダイレクトの記述を削除してください。

データベース接頭辞の違い

もし、wp_config.phpのテーブル接頭辞($tableprefix = ‘wp‘)を別の文字列に変更している場合、ローカルと本番で合わせておいてください。合わせないとうまく表示されません。

まとめ

無事に本番環境とローカル環境の同期ができるようになったでしょうか。いちど設定してしまえばあとは、コマンドを実行するだけです。WordMoveを活用してローカルで本番さながらの環境で開発しましょう。

スポンサーリンク

この記事が気に入っていただけたらシェアお願いします。励みになります。
prev XAMPPはもう古い?!VCCWでWordPressローカル開発環境を構築する方法 next Web制作者ならおさえておきたい!httpの仕組みをかんたん解説

スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です