WordMoveによるWordPressサイトの高速・安全な多環境デプロイ実践ガイド

WordPress開発において、ローカル環境と本番サーバー間のファイルやデータベースの手動同期は非効率かつエラーを誘発しやすい作業です。WordMoveはこうした課題を解決するためのRuby製CLIツールで、rsyncとwp-cliを活用してファイルとDBの双方向同期を自動化します。本記事では、インストールから高度な運用まで、実践的な使い方を解説します。

WordMoveの主な機能

  • ファイル同期:SSH経由のrsyncまたはFTPで効率的にミラーリング
  • データベース移行:mysqldump/wp-cliによるエクスポート・インポートとURL置換の自動化
  • 複数環境対応:local/staging/productionなど複数ターゲットを一元管理
  • フックシステム:push/pull前後に任意コマンドを実行可能(例:ビルド、キャッシュクリア)
  • セキュア設定:.envファイルや環境変数による認証情報の分離

環境構築

以下の依存パッケージを事前にインストールしてください:

# Ubuntu/Debian
sudo apt install ruby-full rsync mysql-client lftp

# macOS (Homebrew)
brew install ruby rsync mysql lftp

その後、GemでWordMoveをインストール:

gem install wordmove
wordmove --version  # バージョン確認

基本設定:movefile.ymlの作成

WordPressプロジェクトのルートディレクトリで初期化:

cd /path/to/wordpress
wordmove init  # movefile.yml を生成

以下は最小限の設定例です(YAML形式):

global:
  sql_adapter: wpcli

local:
  vhost: "http://localhost/mysite"
  wordpress_path: "/home/user/dev/mysite"
  database:
    name: "local_db"
    user: "db_user"
    password: "db_pass"
    host: "127.0.0.1"

production:
  vhost: "https://mysite.com"
  wordpress_path: "/var/www/mysite.com"
  database:
    name: "prod_db"
    user: "prod_user"
    password: "<%= ENV['PROD_DB_PASS'] %>"
    host: "localhost"
  ssh:
    host: "mysite.com"
    user: "deploy_user"

デプロイ操作の実行

設定後、以下のコマンドで同期が可能:

# 全てを本番環境にプッシュ
wordmove push -e production --all

# データベースのみプッシュ
wordmove push -e production -d

# テーマファイルのみプッシュ
wordmove push -e production -t

# 本番からローカルにデータをプル(注意:上書きされる)
wordmove pull -e production -d

セキュリティ対策:.envファイルの活用

パスワードなどの機密情報をmovefile.ymlに直接記述せず、.envファイルで管理します:

# .env(.gitignoreに追加必須)
PROD_DB_PASS="s3cr3t_p@ssw0rd"
PROD_SSH_KEY_PATH="~/.ssh/prod_key"

movefile.yml内では<%= ENV['VAR_NAME'] %>で参照可能です。

フックによる自動化拡張

デプロイ前後にカスタム処理を挿入できます:

production:
  # ...(省略)...
  hooks:
    push:
      before:
        - command: "npm run build"
          where: local
      after:
        - command: "wp cache flush"
          where: remote

よくある問題と対処法

エラー内容原因解決策
rsync: command not found rsync未インストール sudo apt install rsync
Permission denied (publickey) SSH鍵認証失敗 鍵の権限(600)と~/.ssh/configを確認
Database connection failed DB接続情報誤り ホスト名・ユーザー・パスワードを再確認

大規模サイト向け最適化

  • 除外ルールの強化:node_modules, .git, ログファイルなどを明示的に除外
  • DB分割エクスポート:large tablesはexclude_tablesでスキップ
  • rsyncオプション調整rsync_options: "-az --delete --progress"

WordMoveを導入することで、WordPressのデプロイワークフローは劇的に効率化され、ヒューマンエラーも大幅に削減されます。特に中小規模プロジェクトや個人開発者にとって、CI/CDパイプライン構築前の有力な選択肢となるでしょう。

タグ: WordPress WordMove Ruby rsync wp-cli

7月29日 18:00 投稿