
# はじめに

## 必要条件

- PHP 8.2以上
- WordPress 6.4以上
- 通常のWordPressデータベース接続経由のMySQLまたはMariaDB
- プラグインの有効化時に書き込み可能な`wp-config.php`

## インストール

ComposerでRudelをインストールし、通常のWordPressプラグインと同様に有効化します。

```bash
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`に書き込めない場合、有効化は失敗します。無効化すると、その行とスケジュール済みイベントが削除されます。

実行時のステータスを確認します。

```bash
wp rudel status
```

`Bootstrap installed`に`yes`と表示されているはずです。

## サンドボックスを作成する

```bash
wp rudel create --name=alpha --theme=twentytwentyfour
```

Rudelは生成されたサンドボックスID（例：`alpha-3be7`）を出力します。ホストのWordPressテーブルをサンドボックス固有のテーブルプレフィックスに複製し、テーマをサンドボックスディレクトリにコピーして、レコードをホストのWordPressデータベースに保存します。以下の例では`alpha-3be7`を使用しています。コマンドが出力したIDを使用してください。

## サンドボックス内でWP-CLIを使う

```bash
RUDEL_ENVIRONMENT=alpha-3be7 wp option get blogname
```

`RUDEL_ENVIRONMENT`がない場合、WP-CLIはホストに接続します。

## HTTPをサンドボックスにルーティングする

```bash
curl -H 'X-Rudel-Environment: alpha-3be7' http://localhost:8000/
```

ブラウザーセッションでは、サンドボックスIDを含む`rudel_environment`Cookieを設定します。RudelはCookieを読み取りますが、設定も削除もしません。ホストに戻るにはCookieを削除してください。

サンドボックスはホストURL上で動作します。ヘッダーまたはCookieがない場合、同じURLがホストを提供します。

## 次のステップ

- [環境の作成](https://rudel.inline0.dev/ja/docs/environments/creating)
- [環境の管理](https://rudel.inline0.dev/ja/docs/environments/managing)
- [分離](https://rudel.inline0.dev/ja/docs/environments/isolation)
- [CLI](https://rudel.inline0.dev/ja/docs/cli)
