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/client1 e http://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 de password. 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=localhost por --dbhost=127.0.0.1 no 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 .htaccess com as regras de reescrita do multisite. O WP-CLI lida com wp-config.php automaticamente, 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 painel
  • wp search-replace 'localhost:8000' 'mysite.com' --dry-run — pratique migração segura de domínio com uma prévia antes de confirmar
  • wp user generate --count=10 --role=subscriber — crie dez usuários de teste instantaneamente para praticar gerenciamento de usuários
  • wp db export backup.sql — faça seu primeiro backup de banco de dados e confirme que o arquivo foi criado
  • wp 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: