VCCWでWordmoveを使用してWordPressの本番環境の内容を開発環境に反映する!

VCCWでWordmoveを使用してWordPressの本番環境の内容を開発環境に反映します。

使用環境

  • Ubuntu 18.04.3 Desktop
  • VirutalBox Version 6.0.14 r133895 (Qt5.9.5)
  • Vagrant 2.2.6
  • VCCW 3.21.1

VCCWのインストール

以下の記事を参考にVCCWをインストールします。

Movefile.ymlの編集

VCCWをインストール後、vagrant upを実行済みであれば、Movefile.ymlという設定ファイルが作成されているので、編集します。localとproductionのセクションがあり、localが開発環境でproductionがインターネット上等の本番環境です。

localのセクションの編集

localのセクションを編集します。

  • vhost:開発環境でのURLで本番環境とおなじであるとアクセスしづらくなるので、異なるものにします。もちろん、「/etc/hosts」等で名前解決を可能にしておく必要があり、VCCWで設定したホスト名と整合性を取りましょう。
  • wordpress_path:wordpressをインストールするパスですが、本番環境と同じにしておいたほうが分かりやすいと思います。
  • database:必ずしも本番と同一にする必要はありません。

<設定例>

$ vi Movefile.yml
global:
  sql_adapter: default

local:
  vhost: "https://example.test"
  wordpress_path: "/var/www/html" # use an absolute path here

  database:
    name: "wordpress"
    user: "wordpress"
    password: "wordpress"
    host: "localhost"
    charset: "utf8"
...

productionのセクションの編集

  • vhost:本番環境のURLを指定します。
  • wordpress_path:本番環境のWordPressのインストール先を指定します。
  • database:本番環境のDBのの設定値を指定します。「wp-config.php」と同じ内容にする必要があります。
  • ssh:SSHでアクセスするための情報を指定します。ポート番号を変えている場合、デフォルト値から修正しましょう。

<設定例>

$ vi Movefile.yml
...
production:
  vhost: "https://example.com"
  wordpress_path: "/var/www/html" # use an absolute path here

  database:
    name: "db_name"
    user: "db_user"
    password: "db_password"
    host: "localhost"
    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.yml"
    - "wp-config.php"
    - "wp-content/*.sql"

  ssh:
    host: "example.com"
    user: "user"
    port: 10022
    rsync_options: --verbose

本番環境の内容の開発環境への反映

本番環境の内容の開発環境への反映しましょう。VCCWの環境を起動し、SSHで接続後、/vagrantディレクトリに移動します。

$ vagrant up
$ vagrant ssh
$ cd /vagrant

以下の「wordmove」コマンドで本番環境の内容の開発環境への反映します。環境設定よっては、DBへの接続でエラーが出ることがあると思います。エラー内容を見ながら、可能であれば環境側の設定変更等を行います。

$ wordmove pull -all

wp-config.phpの作成

本番環境と開発環境の相違を意識して、wp-config.phpが自動ではコピーされない設定になっています。wordmoveコマンド実施後、wp-config.phpを作成するようにしましょう。

開発環境にアクセス

wordmoveがエラーなく完了し、wp-config.phpの作成が終了したら、localセクションのvhostで設定したURLでアクセスしてみましょう。

wordmoveコマンドを利用する環境側の設定変更

本サイトでwordmoveコマンドを試した際には、DBのバックアップ先の権限を一時的に変更するなど環境側の対応が必要になりました。サイト毎に構成の違いに基づく対応が必要になると思います。場合によっては、ApacheのDocumentRootの設定も確認しましょう。

本番環境と開発環境の相違点に注意

本番環境のURLをWordPressで作成したメニューに埋め込んでいる場合等、Wordmoveで自動では変更されない部分があります。Wordmoveで開発環境に反映後に変更が必要となる設定があることに注意します。サイトのURLの階層が異なる場合は、DB内のサイトのURLを変更するのが手っ取り早い場合もあります。

おわりに

Wordmoveを使用すると、簡単に本番環境のコピーを開発環境に作成することができます。Wordmoveでは、開発環境から本番環境への反映も問題なくできるとのことですが、開発環境用に設定や内容を変更している場合、そのまま本番反映すると即トラブルになります。開発環境から本番環境への反映を行う場合は、手順を整えてから実施するようにしましょう。

関連記事

  1. VCCWを使用してWordPressの開発環境を構築する!
  2. VCCWでWordmoveを使用してWordPressの本番環境の内容を開発環境に反映する!