Neste tutorial detalhado, explicamos como construir um laboratório WordPress Multisite totalmente descartável no Linux para praticar todos os comandos do WP-CLI com segurança. Este guia prático inclui a configuração completa do WordPress Multisite, a conversão de um site único para multisite, sites independentes e as etapas de limpeza total.
Funciona em: Debian, Ubuntu, Linux Mint, Fedora, RHEL, AlmaLinux, Rocky Linux
Por que você precisa de um laboratório WordPress Multisite descartável
A maneira mais rápida de aprender WP-CLI é usando-o, não apenas lendo sobre ele. No entanto, executar comandos desconhecidos em um site ativo é arriscado. Um único wp db reset errado ou um search-replace digitado incorretamente pode apagar dados instantaneamente, sem possibilidade de desfazer.
Um laboratório WordPress descartável resolve isso completamente. Você obtém um ambiente WordPress real e totalmente funcional rodando inteiramente em sua máquina local. Você pode quebrar coisas intencionalmente, reconstruir em segundos e repetir o mesmo comando dez vezes até que pareça natural. Nada do que você fizer aqui afeta qualquer site real.
Além disso, como toda a configuração roda em seu sistema de arquivos local, você não precisa de um nome de domínio, uma conta de hospedagem ou uma conexão com a internet para praticar (exceto para instalar o software necessário). Tudo fica em sua máquina até que você decida remover.
O que você terá ao final
Ao terminar este guia, você terá:
- Uma rede WordPress Multisite totalmente funcional rodando localmente em
http://localhost:8000 - Dois sub-sites de prática em
http://localhost:8000/client1ehttp://localhost:8000/client2 - Uma instalação WordPress independente separada rodando em
http://localhost:8001 - WP-CLI instalado e funcionando em todos os ambientes
- Um processo de remoção limpo que apaga tudo quando você terminar
O que você precisa antes de começar
Este guia foca inteiramente na configuração do laboratório. Ele não repete os pré-requisitos completos aqui. Antes de começar, certifique-se de ter:
- Um desktop ou servidor Linux (Debian, Ubuntu, Fedora, RHEL, AlmaLinux ou Rocky Linux)
- Um terminal com acesso sudo
- Familiaridade básica com a linha de comando
Se você é novo no WP-CLI e ainda não leu os requisitos completos e o histórico de instalação, comece com o Guia Completo do WP-CLI primeiro. Esse guia cobre os requisitos de versão do PHP, extensões necessárias, acesso SSH e configuração do banco de dados em detalhes. Volte aqui quando estiver familiarizado com o básico.
Nota: Este guia usa o servidor de desenvolvimento embutido do PHP (php -S) para testes locais. Este servidor é apenas para prática. Nunca o use em um ambiente de produção.
Passo 1: Instalar Pacotes Necessários
Primeiro, instale o PHP, MariaDB e as ferramentas de suporte que seu laboratório precisa. Escolha os comandos para sua distribuição Linux.
Fedora / RHEL / AlmaLinux / Rocky Linux:
sudo dnf install php php-mysqlnd mariadb-server wget unzip less
Debian / Ubuntu / Linux Mint:
sudo apt update
sudo apt install php php-mysql mariadb-server wget unzip less
Em seguida, inicie o MariaDB e habilite-o para que inicie automaticamente em toda inicialização:
sudo systemctl enable --now mariadb
Nota: No Ubuntu, o serviço MariaDB é iniciado automaticamente. Não é necessário iniciá-lo manualmente.
Confirme se o MariaDB está rodando antes de prosseguir:
sudo systemctl status mariadb
Exemplo de saída:
● mariadb.service - MariaDB 11.8.6 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: enabled)
Active: active (running) since Sat 2026-05-30 16:33:26 IST; 1min 5s ago
Invocation: af1424889bbb491997884ffd57e779f6
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Process: 31374 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] >
Process: 31441 ExecStartPost=/bin/rm -f /run/mysqld/wsrep-start-position /run/mysqld/wsrep-new-cluster (code=exited, status=0/SUCCE>
Process: 31443 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
Main PID: 31426 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 10 (limit: 90283)
Memory: 91.7M (peak: 96.6M)
CPU: 723ms
CGroup: /system.slice/mariadb.service
└─31426 /usr/sbin/mariadbd
May 30 16:33:26 Ubuntu2604 mariadbd[31426]: 2026-05-30 16:33:26 0 [Note] /usr/sbin/mariadbd: ready for connections.
May 30 16:33:26 Ubuntu2604 mariadbd[31426]: Version: '11.8.6-MariaDB-5 from Ubuntu' socket: '/run/mysqld/mysqld.sock' port: 3306 -- >
May 30 16:33:26 Ubuntu2604 systemd[1]: Started mariadb.service - MariaDB 11.8.6 database server.
Você deve ver active (running) na saída. Se não aparecer, execute sudo systemctl start mariadb e verifique o status novamente.
Passo 2: Criar o Banco de Dados
O WP-CLI precisa de um banco de dados pronto antes de poder instalar o WordPress. Abra o shell do MariaDB:
sudo mysql
Em seguida, execute estes comandos dentro do prompt do MariaDB:
CREATE DATABASE wpcli_lab CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wpcli_lab.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Algumas coisas importantes aqui. A configuração CHARACTER SET utf8mb4 é crucial. Ela garante que o WordPress lide corretamente com caracteres internacionais, emojis e símbolos especiais desde o início. A linha FLUSH PRIVILEGES instrui o MariaDB a recarregar suas tabelas de permissão imediatamente para que o novo usuário funcione de imediato.
Para produção: Sempre use uma senha forte e única (
password) em vez depassword. Para este laboratório de prática, uma senha simples está ok, pois o banco de dados é acessível apenas localmente.
Verifique se o banco de dados foi criado:
sudo mysql -e "SHOW DATABASES;"
Você deve ver wpcli_lab na lista.
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| wpcli_lab |
+--------------------+
Passo 3: Instalar o WP-CLI
Baixe a versão estável mais recente do WP-CLI:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Torne o arquivo executável:
chmod +x wp-cli.phar
Mova-o para um local global para que você possa executar wp de qualquer lugar:
sudo mv wp-cli.phar /usr/local/bin/wp
Verifique a instalação:
wp --info
Você deve ver as informações da versão do WP-CLI, o caminho do binário PHP, a versão do PHP e detalhes do sistema. Se você vir tudo isso, o WP-CLI está instalado corretamente e pronto para uso.
Exemplo de saída:
OS: Linux 7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 16:06:43 UTC 2026 x86_64
Shell: /bin/bash
PHP binary: /usr/bin/php8.5
PHP version: 8.5.4
php.ini used: /etc/php/8.5/cli/php.ini
MySQL binary: /usr/bin/mariadb
MySQL version: mariadb from 11.8.6-MariaDB, client 15.2 for debian-linux-gnu (x86_64) using EditLine wrapper
SQL modes:
WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: phar:///usr/local/bin/wp
WP-CLI packages dir:
WP-CLI cache dir: /home/ostechnix/.wp-cli/cache
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.12.0
Passo 4: Criar o Diretório de Prática
Crie uma pasta dedicada para seu laboratório multisite e entre nela:
mkdir ~/wpcli-lab
cd ~/wpcli-lab
Todos os arquivos do WordPress para seu site de prática principal viverão aqui. Mantê-lo em seu diretório home facilita encontrá-lo e excluí-lo quando você terminar.
Passo 5: Baixar o WordPress
Baixe a versão mais recente do WordPress core diretamente em seu diretório de prática:
wp core download
O WP-CLI baixa o WordPress do repositório oficial do WordPress.org e o extrai no diretório atual.
Após este comando terminar, execute ls para confirmar que os arquivos do WordPress estão lá:
ls
Você deve ver pastas como wp-admin, wp-content e wp-includes, junto com arquivos como wp-config-sample.php e index.php.
Passo 6: Criar o wp-config.php
Gere o arquivo wp-config.php usando as credenciais do banco de dados que você criou no Passo 2:
wp config create \
--dbname=wpcli_lab \
--dbuser=wpuser \
--dbpass=password
Substitua o nome do banco de dados, usuário e senha pelos seus.
O WP-CLI lê seu diretório atual, encontra wp-config-sample.php, preenche seus detalhes do banco de dados e salva o resultado como wp-config.php. Além disso, ele define automaticamente o host do banco de dados como localhost, que é o correto para uma instalação local do MariaDB.
Se você vir o erro 2002 "No such file or directory": Substitua
--dbhost=localhostpor--dbhost=127.0.0.1no comando acima. Isso força o PHP a usar uma conexão TCP em vez de um socket Unix, o que corrige o problema em alguns sistemas.
Confirme se o arquivo de configuração foi criado:
ls wp-config.php
Passo 7: Instalar o WordPress
Agora execute o instalador do WordPress. Isso cria todas as tabelas do banco de dados e configura a conta de administrador:
wp core install \
--url=http://localhost:8000 \
--title="WP-CLI Lab" \
--admin_user=admin \
--admin_password=password \
[email protected] \
--skip-email
A flag --skip-email impede que o WordPress tente enviar um e-mail de boas-vindas durante a instalação. Como este é um laboratório local sem servidor de e-mail configurado, pular isso evita que um aviso confuso apareça.
Verifique se a instalação foi concluída com sucesso:
wp core is-installed && echo "WordPress installed successfully"
Se você vir "WordPress installed successfully", vá para o próximo passo.
Passo 8: Iniciar o Servidor PHP Local
O PHP inclui um servidor de desenvolvimento embutido que você pode iniciar com um único comando. Abra uma janela de terminal e execute:
cd ~/wpcli-lab
php -S localhost:8000
Deixe esta janela de terminal rodando. O servidor PHP roda em primeiro plano, então fechar esta janela interrompe o servidor.
Agora abra seu navegador web e visite:
http://localhost:8000
Você deve ver seu site WordPress.
Para acessar o painel de administrador, vá para:
http://localhost:8000/wp-admin
Faça login com admin e password. Novamente, substitua estes pelos seus valores se você usou um nome de usuário e senha diferentes ao instalar o WordPress na etapa anterior.
Neste ponto, o WordPress está totalmente rodando localmente como um site único. O próximo passo o converte para multisite.
Passo 9: Converter para Multisite
Abra uma segunda janela de terminal — mantenha a primeira rodando o servidor PHP. No novo terminal, navegue até seu diretório de laboratório:
cd ~/wpcli-lab
Converta a instalação única do WordPress para uma rede multisite:
wp core multisite-convert
Exemplo de saída:
Set up multisite database tables.
Added multisite constants to 'wp-config.php'.
Success: Network installed. Don't forget to set up rewrite rules (and a .htaccess file, if using Apache).
Este único comando faz quatro coisas automaticamente:
- Ativa o modo multisite em
wp-config.php - Atualiza as opções do WordPress no banco de dados para ativar a rede
- Cria as tabelas de banco de dados adicionais que o multisite requer
- Ativa o painel de Administração da Rede
Usuários do Apache: Se você executar isso em um servidor Apache em vez do servidor embutido do PHP, você também precisará atualizar seu arquivo
.htaccesscom as regras de reescrita do multisite. O WP-CLI lida comwp-config.phpautomaticamente, mas não atualiza.htaccess. Consulte a documentação do WordPress multisite para as regras corretas a adicionar.
Passo 10: Verificar o Multisite
Confirme se o multisite está funcionando corretamente:
wp site list
Você deve ver uma saída como esta:
+---------+------------------------+---------------------+---------------------+
| blog_id | url | last_updated | registered |
+---------+------------------------+---------------------+---------------------+
| 1 | http://localhost:8000/ | 0000-00-00 00:00:00 | 2026-05-30 11:23:39 |
+---------+------------------------+---------------------+---------------------+
Um site significa que a rede está ativa e funcionando. Você também pode acessar o painel de Administração da Rede do WordPress em seu navegador em:
http://localhost:8000/wp-admin/network
Faça login com as mesmas credenciais de administrador. O painel de Administração da Rede é onde você gerencia todos os sites, plugins em toda a rede e configurações de rede em toda a instalação multisite.
Você pode encontrar seus sites individuais sob a aba "Meus Sites".
Como você pode ver na saída acima, atualmente temos um site WordPress chamado "WP-CLI LAB".
Passo 11: Criar Sub-Sites Adicionais
Agora adicione dois sub-sites de prática à sua rede. Cada um fornece um ambiente WordPress separado para você experimentar de forma independente:
wp site create --slug=client1 --title="Client 1"
wp site create --slug=client2 --title="Client 2"
Verifique se todos os três sites agora aparecem na rede:
wp site list
Você deve ver todas as três entradas, o site raiz mais ambos os sub-sites:
+---------+--------------------------------+---------------------+---------------------+
| blog_id | url | last_updated | registered |
+---------+--------------------------------+---------------------+---------------------+
| 1 | http://localhost:8000/ | 0000-00-00 00:00:00 | 2026-05-30 11:23:39 |
| 2 | http://localhost:8000/client1/ | 2026-05-30 11:35:43 | 2026-05-30 11:35:43 |
| 3 | http://localhost:8000/client2/ | 2026-05-30 11:35:54 | 2026-05-30 11:35:54 |
+---------+--------------------------------+---------------------+---------------------+
Abra cada sub-site em seu navegador para confirmar que eles carregam:
http://localhost:8000/client1
http://localhost:8000/client2
Você também pode visualizá-los sob a aba "Meus Sites" em seu painel de Administração da Rede:
Ambos os sub-sites são agora sites WordPress totalmente independentes rodando dentro da mesma rede. Como resultado, você pode praticar comandos em toda a rede como wp plugin activate --network, bem como comandos específicos de site usando a flag --url.
Passo 12: Criar um Site WordPress Independente
Além da rede multisite, você também pode criar uma instalação WordPress completamente separada e independente. Isso é útil para praticar comandos que só se aplicam a configurações de site único, ou para comparar o comportamento de site único e multisite lado a lado.
Crie um novo diretório:
mkdir ~/newsite
cd ~/newsite
Crie um novo banco de dados para este site. Abra o MariaDB:
sudo mysql
Dentro do prompt do MariaDB:
CREATE DATABASE newsite_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON newsite_db.* TO 'newuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Baixe o WordPress:
wp core download
Crie o wp-config.php:
wp config create \
--dbname=newsite_db \
--dbuser=newuser \
--dbpass=password
Instale o WordPress:
wp core install \
--url=http://localhost:8001 \
--title="New Site" \
--admin_user=admin \
--admin_password=password \
[email protected] \
--skip-email
Inicie o servidor PHP em uma porta diferente (abra uma terceira janela de terminal para isso):
cd ~/newsite
php -S localhost:8001
Abra o site em seu navegador:
http://localhost:8001
Você agora tem uma instalação WordPress completamente separada e independente rodando junto com sua rede multisite. Cada ambiente é independente e as mudanças em um não afetam o outro.
Passo 13: Praticar Comandos WP-CLI
Seu laboratório está pronto. Aqui está o que você pode praticar com segurança em seus três ambientes:
Gerenciamento de plugins:
# Install and activate a plugin on the multisite network
cd ~/wpcli-lab
wp plugin install hello-dolly --activate --url=http://localhost:8000/client1
# Activate a plugin network-wide
wp plugin activate hello-dolly --network
# List plugins across the network
wp plugin list --url=http://localhost:8000/client2
Administração Multisite:
# List all sites
wp site list
# Create a new subsite
wp site create --slug=testsite --title="Test Site"
# Delete a subsite
wp site delete 4 --yes
Gerenciamento de usuários:
# Create a user on a specific subsite
wp user create senthil [email protected] --role=editor \
--url=http://localhost:8000/client1
# List all users network-wide
wp user list --network
# Generate test users
wp user generate --count=5 --role=subscriber
Operações de banco de dados:
# Export the database
wp db export backup.sql
# Check database size
wp db size --human-readable
# Run a search-replace dry run
wp search-replace 'localhost:8000' 'example.com' --dry-run
Tarefas agendadas (cron):
# List scheduled cron events
wp cron event list
# Run all cron events immediately
wp cron event run --all
Backups e restaurações:
# Export
wp db export ~/backup-$(date +%Y%m%d).sql
# Import
wp db import ~/backup-20250101.sql
Solução de problemas:
# Verify core files
wp core verify-checksums
# Flush all caches
wp cache flush
# Check for available updates
wp core check-update
wp plugin list --update=available
Como o laboratório é completamente descartável, você pode experimentar livremente sem se preocupar em quebrar algo importante. Se você corromper o banco de dados ou excluir algo que não deveria, basta desmontar o laboratório e reconstruí-lo a partir do Passo 4. Todo o processo leva menos de cinco minutos depois que você já fez uma vez.
Passo 14: Limpar Tudo
Quando terminar de praticar, remova tudo completamente. Esta seção percorre cada componente na ordem correta de remoção.
Parar os Servidores PHP Locais
Em cada janela de terminal que está rodando um servidor PHP, pressione Ctrl + C para interrompê-lo. Faça isso para ambos localhost:8000 e localhost:8001 se ambos estiverem rodando.
Remover os Diretórios do WordPress
rm -rf ~/wpcli-lab
rm -rf ~/newsite
Remover Todos os Bancos de Dados e Usuários
Abra o MariaDB:
sudo mysql
Dentro do prompt do MariaDB:
DROP DATABASE wpcli_lab;
DROP DATABASE newsite_db;
DROP USER 'wpuser'@'localhost';
DROP USER 'newuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Remover o WP-CLI
sudo rm /usr/local/bin/wp
Remover PHP e MariaDB (Opcional)
Faça isso apenas se você os instalou especificamente para este laboratório e não precisa deles para mais nada em seu sistema.
Fedora / RHEL / AlmaLinux / Rocky Linux:
sudo dnf remove php php-mysqlnd mariadb-server
Ubuntu / Debian / Linux Mint:
sudo apt remove php php-mysql mariadb-server
sudo apt autoremove
Verificar a Limpeza
Execute cada uma destas verificações para confirmar que tudo se foi:
# Check WordPress directories are removed
ls ~/wpcli-lab # Should return: No such file or directory
ls ~/newsite # Should return: No such file or directory
# Check databases are removed
sudo mysql -e "SHOW DATABASES;"
# wpcli_lab and newsite_db should no longer appear
# If mysql is already uninstalled, you would see command not found.
# Check WP-CLI is removed
wp --info # Should return: command not found or no such file
Neste ponto, seu sistema está de volta ao estado limpo. Todos os arquivos do WordPress, bancos de dados, usuários e o próprio WP-CLI foram completamente removidos.
Considerações Finais
Um laboratório descartável é genuinamente uma das maneiras mais rápidas de aprender WP-CLI. Em vez de memorizar a sintaxe de comandos de uma folha de dicas, você executa os comandos em um ambiente real e vê exatamente o que eles fazem. Você aprende através da repetição — criando sites, quebrando coisas intencionalmente e reconstruindo o ambiente do zero quantas vezes precisar.
Para usuários Linux especialmente, o WP-CLI parece natural porque se encaixa perfeitamente no fluxo de trabalho padrão de linha de comando que você já usa todos os dias. O mesmo terminal que você usa para tudo o mais se torna sua ferramenta de gerenciamento do WordPress.
O hábito chave a construir é este: toda vez que você quiser aprender um novo comando do WP-CLI, volte a este laboratório, inicie-o e execute-o aqui primeiro. Não execute um comando desconhecido em um site ativo até ter visto exatamente o que ele faz em um ambiente seguro.
O que Praticar em Seguida
Seu laboratório está rodando. Aqui estão cinco comandos do guia de Comandos WP-CLI para começar. Cada um ensina algo fundamentalmente diferente:
wp plugin update --all— atualize todos os plugins de uma só vez e veja como o WP-CLI é rápido comparado ao painelwp search-replace 'localhost:8000' 'mysite.com' --dry-run— pratique migração segura de domínio com uma prévia antes de confirmarwp user generate --count=10 --role=subscriber— crie dez usuários de teste instantaneamente para praticar gerenciamento de usuárioswp db export backup.sql— faça seu primeiro backup de banco de dados e confirme que o arquivo foi criadowp core verify-checksums— verifique a integridade dos arquivos de sua instalação WordPress
Veja a referência completa de comandos na Parte 3: Comandos WP-CLI - O Guia de Referência Completo.
Achou este guia útil? Compartilhe com alguém que está aprendendo desenvolvimento WordPress. Quanto mais você praticar em um ambiente seguro, mais confiante se sentirá ao trabalhar em sites reais.
Também nesta série:




