Primeiros passos
Requisitos
- PHP 8.2+
- WordPress 6.4+
- MySQL ou MariaDB pela conexão normal com o banco de dados WordPress
- um
wp-config.phpcom permissão de escrita quando o plugin é ativado
Instalação
Instale Rudel com Composer e ative-o como um plugin WordPress normal.
composer require rudel/rudel
wp plugin activate rudel
Composer instala Rudel em vendor/rudel/rudel, a menos que seu projeto mapeie os plugins WordPress para wp-content/plugins (por exemplo, com composer/installers). O plugin precisa estar no diretório de plugins para que wp plugin activate rudel o encontre.
O que a ativação faz
A ativação cria as tabelas de Rudel, agenda o evento de limpeza a cada hora e adiciona uma linha de bootstrap a wp-config.php, logo acima da linha que carrega wp-settings.php. Essa linha permite que Rudel selecione um sandbox antes que WordPress termine de carregar. Primeiro, Rudel grava uma cópia de backup chamada wp-config.php.rudel-backup-{timestamp}.
Não há um comando de instalação separado. Se wp-config.php não permitir gravação, a ativação falha. A desativação remove a linha e o evento agendado.
Verifique o status em tempo de execução:
wp rudel status
Bootstrap installed deve indicar yes.
Criar um sandbox
wp rudel create --name=alpha --theme=twentytwentyfour
Rudel exibe o ID gerado para o sandbox, por exemplo alpha-3be7. O comando clona as tabelas WordPress do host para um prefixo de tabela específico do sandbox, copia o tema para o diretório do sandbox e armazena o registro no banco de dados WordPress do host. Os exemplos abaixo usam alpha-3be7; use o ID exibido pelo seu comando.
Usar WP-CLI dentro de um sandbox
RUDEL_ENVIRONMENT=alpha-3be7 wp option get blogname
Sem RUDEL_ENVIRONMENT, WP-CLI se conecta ao host.
Direcionar HTTP para um sandbox
curl -H 'X-Rudel-Environment: alpha-3be7' http://localhost:8000/
Para uma sessão no navegador, defina um cookie rudel_environment com o ID do sandbox. Rudel lê o cookie, mas nunca o define nem o limpa. Exclua o cookie para voltar ao host.
O sandbox é executado no host URL. Sem o cabeçalho ou o cookie, o mesmo URL atende ao host.