はじめに
必要条件
- PHP 8.2以上
- WordPress 6.4以上
- 通常のWordPressデータベース接続経由のMySQLまたはMariaDB
- プラグインの有効化時に書き込み可能な
wp-config.php
インストール
ComposerでRudelをインストールし、通常のWordPressプラグインと同様に有効化します。
composer require rudel/rudel
wp plugin activate rudel
プロジェクトでWordPressプラグインをwp-content/pluginsにマッピングしている場合(例: composer/installers)を除き、ComposerはRudelをvendor/rudel/rudelにインストールします。wp plugin activate rudelが見つけられるよう、プラグインはプラグインディレクトリ内に置く必要があります。
有効化時の処理
有効化すると、Rudelのテーブルを作成し、毎時のクリーンアップイベントをスケジュールして、wp-settings.phpを読み込む行の直前に、wp-config.phpへブートストラップの行を1つ追加します。この行により、WordPressの読み込みが完了する前にRudelがサンドボックスを選択できます。Rudelは先にwp-config.php.rudel-backup-{timestamp}という名前でバックアップを作成します。
別途インストールするコマンドはありません。wp-config.phpに書き込めない場合、有効化は失敗します。無効化すると、その行とスケジュール済みイベントが削除されます。
実行時のステータスを確認します。
wp rudel status
Bootstrap installedにyesと表示されているはずです。
サンドボックスを作成する
wp rudel create --name=alpha --theme=twentytwentyfour
Rudelは生成されたサンドボックスID(例:alpha-3be7)を出力します。ホストのWordPressテーブルをサンドボックス固有のテーブルプレフィックスに複製し、テーマをサンドボックスディレクトリにコピーして、レコードをホストのWordPressデータベースに保存します。以下の例ではalpha-3be7を使用しています。コマンドが出力したIDを使用してください。
サンドボックス内でWP-CLIを使う
RUDEL_ENVIRONMENT=alpha-3be7 wp option get blogname
RUDEL_ENVIRONMENTがない場合、WP-CLIはホストに接続します。
HTTPをサンドボックスにルーティングする
curl -H 'X-Rudel-Environment: alpha-3be7' http://localhost:8000/
ブラウザーセッションでは、サンドボックスIDを含むrudel_environmentCookieを設定します。RudelはCookieを読み取りますが、設定も削除もしません。ホストに戻るにはCookieを削除してください。
サンドボックスはホストURL上で動作します。ヘッダーまたはCookieがない場合、同じURLがホストを提供します。