配置
Rudel 有两类配置:存储在 rudel_config WordPress 选项中的设置,以及你在 wp-config.php 中定义的常量。
rudel_config 选项
设置存储在 wp_options 中 rudel_config 下的一个数组中。在有内容写入该选项之前,每个键都使用默认值。未知键会被忽略,值会以整数形式存储。
| 键 | 默认值 | 含义 |
|---|---|---|
max_sandboxes |
0 |
达到此数量时,拒绝创建沙盒。0 表示不设限制。 |
max_disk_mb |
0 |
沙盒目录达到此大小(兆字节)时,拒绝创建沙盒。克隆的表不计入。0 表示不设限制。 |
default_ttl_days |
0 |
未指定 ttl_days 或 expires_at 时,新建沙盒的默认到期时间。0 表示永不过期。 |
max_age_days |
0 |
清理会移除超过此存续时间的沙盒。0 会停用存续时间规则。 |
max_idle_days |
0 |
清理会移除在这段时间内没有记录活动(沙盒请求或快照)的沙盒。0 会停用空闲规则。 |
auto_cleanup_enabled |
1 |
每小时从 WP-Cron 运行一次清理策略。 |
auto_cleanup_merged |
0 |
同时运行 WP-Cron 中的已合并分支清理。 |
expiring_environment_notice_days |
0 |
每次自动化运行时,收集将在这些天内到期的沙盒,并将其传递给 rudel_after_automation_expiring_environments 操作。 |
auto_snapshot_before_restore |
1 |
每次还原前保存一个 pre-restore-... 快照。 |
wp rudel status 会打印当前值。
使用 WP-CLI 写入该选项。未指定的键会保留默认值:
命令行
wp option update rudel_config '{"max_age_days":14,"max_idle_days":3,"auto_cleanup_merged":1}' --format=json
也可以从 PHP 执行:
PHP
$config = new Rudel\RudelConfig();
$config->set( 'max_sandboxes', 20 );
$config->save();
更改后,下一个请求会安排或移除 WP-Cron 事件。请参阅 自动化。
常量
在 wp-config.php 中、Rudel 引导行之前定义这些常量。
| 常量 | 默认值 | 含义 |
|---|---|---|
RUDEL_CLI_COMMAND |
rudel |
根 WP-CLI 命令名称。 |
RUDEL_ENVIRONMENTS_DIR |
wp-content/rudel-environments |
存放沙盒目录的目录。主题资源始终从 /wp-content/rudel-environments/{id}/themes 提供,因此其他目录仍必须能通过该 URL 访问。 |
RUDEL_RUNTIME_TABLE_PREFIX |
rudel_ |
Rudel 表名称中、WordPress 前缀之后的部分。请参阅 运行时状态。 |
RUDEL_RUNTIME_TABLE_ENVIRONMENTS |
environments 表的完整名称覆盖值,位于 WordPress 前缀之后。 | |
RUDEL_RUNTIME_TABLE_WORKTREES |
worktrees 表的完整名称覆盖值,位于 WordPress 前缀之后。 | |
RUDEL_DB_DRIVER |
auto |
用于独立 Rudel\Connection 访问的驱动程序:auto、mysqli 或 pdo。WordPress 请求始终使用 $wpdb。 |
RUDEL_GIT_AUTHOR_NAME |
Rudel |
当检出目录没有 user.name 时,Rudel 会将作者姓名写入该目录的 Git 配置,用于 wp rudel push 提交。 |
RUDEL_GIT_AUTHOR_EMAIL |
rudel@localhost |
当检出目录没有 user.email 时,Rudel 会写入作者邮箱。 |
沙盒请求中的常量
请求选择沙盒时,引导程序会定义代码可读取的常量。最常用的包括:
| 常量 | 值 |
|---|---|
RUDEL_ID |
沙盒 ID |
RUDEL_PATH |
沙盒目录 |
RUDEL_TABLE_PREFIX |
沙盒表前缀 |
RUDEL_THEME_SLUG |
从沙盒提供的主题 |
RUDEL_HOST_URL, RUDEL_ENVIRONMENT_URL |
主机和沙盒 URL |
RUDEL_DISABLE_EMAIL |
true;出站邮件会被阻止 |
优先使用 API 方法(例如 Rudel::id()),而不是直接读取常量。
引导程序还会定义 WP_DEBUG、WP_DEBUG_LOG、WP_DEBUG_DISPLAY、WP_TEMP_DIR、WP_CACHE_KEY_SALT以及八个身份验证密钥和盐,但只会定义 wp-config.php 尚未定义的那些项。参见 错误日志和隔离。