Fala, comunidade PHP Belém!
Quem trabalha com ecossistemas PHP há algum tempo sabe que o WordPress é uma ferramenta fantástica, mas a forma como muitos projetos ainda são gerenciados — com edições diretas pelo FTP, banco de dados subindo "na mão" e zero rastreabilidade — é um convite para dores de cabeça.
A boa notícia é que não precisa ser assim. Hoje, vamos estruturar um fluxo de trabalho moderno, isolado e extremamente seguro para seus projetos WordPress, utilizando o trio de ouro: DDEV para o ambiente local, Git para o versionamento e GitHub Actions para automação de deploy.
1. O Fim do "Na minha máquina funciona": Ambiente Local com DDEV
Esqueça as configurações complexas do XAMPP ou as brigas com portas do sistema. O DDEV é uma ferramenta baseada em Docker que cria ambientes isolados em containers para projetos PHP (funciona incrivelmente bem tanto para WordPress quanto para Drupal e Laravel).
A grande vantagem é que toda a sua equipe (ou você mesmo daqui a 6 meses) pode rodar o projeto exatamente com as mesmas versões de PHP, MariaDB e Nginx, independentemente do sistema operacional.
Subindo um WordPress em 3 minutos:
Abra seu terminal e rode os seguintes comandos para iniciar um projeto do zero:
# Crie a pasta do projeto e entre nela
mkdir meu-wp-seguro && cd meu-wp-seguro
# Configure o DDEV para entender que é um projeto WordPress
ddev config --project-type=wordpress --docroot=.
# Inicie os containers Docker
ddev start
# Baixe o core do WordPress usando o WP-CLI embutido no DDEV
ddev wp core download
# Instale o WordPress rapidamente (substitua os dados conforme necessário)
ddev wp core install --url="https://meu-wp-seguro.ddev.site" --title="Comunidade PHP" --admin_user=admin --admin_password=admin --admin_email=admin@teste.comPronto! Seu ambiente está rodando de forma isolada, com certificado SSL configurado localmente e banco de dados rodando em container.
2. Versionamento Inteligente com Git
Um dos maiores erros de segurança no WordPress é versionar tudo. Você não deve colocar o core do WordPress (que recebe atualizações constantes) ou a pasta de uploads dos usuários no seu repositório Git.
O foco do seu versionamento deve ser exclusivamente o que você produz: seus temas customizados, seus plugins desenvolvidos internamente e configurações específicas.
Crie um arquivo .gitignore na raiz do seu projeto com a seguinte estrutura de blindagem:
# Ignorar arquivos de sistema e IDEs
.DS_Store
.idea/
.vscode/
# Ignorar ambiente DDEV local
.ddev/
# Ignorar Core do WP
wp-admin/
wp-includes/
*.php
!wp-config.php
# Ignorar Mídias e Plugins de terceiros (Versionar apenas o seu código!)
wp-content/uploads/
wp-content/plugins/*
!wp-content/plugins/meu-plugin-exclusivo/
wp-content/themes/*
!wp-content/themes/meu-tema-customizado/Com isso, o seu repositório no GitHub ficará limpo, leve e focado apenas na regra de negócio da sua aplicação.
3. Deploy Contínuo com GitHub Actions
Se você não usa mais FTP para enviar arquivos arrastando de uma janela para outra, parabéns, você está no caminho certo! O GitHub Actions permite criar um "pipeline" (uma esteira de automação): toda vez que você enviar código para a branch principal, um robô do GitHub testa seu código e o envia de forma segura para o servidor.
Criando sua esteira de Deploy (CI/CD)
No seu repositório, crie um arquivo no caminho .github/workflows/deploy.yml. Aqui está um exemplo usando rsync sobre SSH, que é um dos métodos mais seguros e rápidos, pois envia apenas os arquivos que sofreram alterações:
name: Deploy WordPress para Produção
on:
push:
branches:
- main # O deploy acontece automaticamente ao atualizar a main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: 📥 Baixar o código mais recente
uses: actions/checkout@v3
- name: 🚀 Deploy via Rsync
uses: easingthemes/ssh-deploy@main
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
ARGS: "-rlgoDzvc -i --delete"
SOURCE: "wp-content/themes/meu-tema-customizado/"
REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
REMOTE_USER: ${{ secrets.REMOTE_USER }}
TARGET: "/var/www/html/meu-site/wp-content/themes/meu-tema-customizado/"
Por que isso é extremamente seguro?
- Credenciais ocultas: As senhas e chaves SSH do seu servidor ficam salvas nos
Secretsdo repositório do GitHub. Nenhum desenvolvedor da equipe precisa ter a senha de produção no próprio computador. - Histórico e Rollback: Se o deploy quebrar o site, basta reverter (revert) o último commit no Git, e o GitHub Actions enviará a versão anterior estável automaticamente em segundos.
- Ambientes múltiplos: Você pode criar o mesmo arquivo apontando para uma branch
staginge enviando para um servidor de testes antes de aprovar para amain.
Conclusão
Adotar DDEV + Git + GitHub Actions eleva o padrão de qualquer projeto WordPress. Você ganha ambientes locais idênticos para toda a equipe, proteção total do código-fonte e entregas automatizadas onde o erro humano de esquecer de enviar um arquivo simplesmente deixa de existir.
Bora aplicar isso nos próximos projetos e discutir os resultados nos canais da comunidade!