Deploy CakePHP: Você já passou semanas ou meses escrevendo código, refinando o banco de dados e garantindo que cada Element e Service estivesse no lugar certo. Mas agora chega o momento da verdade: tirar o projeto do seu ambiente local (WSL, MX Linux ou Windows) e colocá-lo no ar para o mundo. O “deploy” não é apenas copiar arquivos via FTP; é um processo estratégico que garante que sua aplicação continue segura, rápida e funcional.
Como especialista em CakePHP, preparei este vigésimo sexto artigo da nossa série para ser o seu guia definitivo de Deploy. Vamos aprender como migrar sua aplicação para a produção de forma profissional, automatizada e sem aquele frio na barriga de ver o site sair do ar.
Deploy de Aplicações CakePHP: Do ambiente local para a produção
Deploy CakePHP: O sucesso de um deploy reside na paridade entre ambientes. No seu computador, você tem total controle; no servidor de produção, você lida com restrições de segurança, permissões de pastas e variáveis de ambiente. Para que o seu blog ou o portal RPJobs funcionem perfeitamente, precisamos seguir um checklist rigoroso que vai desde a configuração do PHP até a otimização do Composer.
1. Preparação do Servidor: O Ambiente Ideal
O CakePHP 5 exige um ambiente moderno. Antes de subir o primeiro arquivo, certifique-se de que o seu servidor (seja uma VPS, um servidor dedicado ou uma hospedagem profissional) atende aos requisitos:
- PHP 8.1+: Com extensões essenciais como
mbstring,intl,simplexmlepdo_mysql. - Servidor Web: Apache (com
mod_rewritehabilitado) ou Nginx. - Banco de Dados: MySQL ou MariaDB configurado com suporte a
utf8mb4.
2. Gerenciando Configurações Sensíveis (app_local.php)
Uma das maiores falhas de segurança é subir senhas do banco de dados no Git. O CakePHP resolve isso dividindo a configuração em dois arquivos:
config/app.php: Contém as configurações genéricas que não mudam entre ambientes.config/app_local.php: Contém as credenciais do banco de dados, chaves de API e o mododebug. Este arquivo deve estar no seu.gitignore.
No Servidor de Produção:
Crie o arquivo app_local.php manualmente ou use variáveis de ambiente (.env).
PHP
// config/app_local.php (Produção)
return [
'debug' => false, // REGRA DE OURO: SEMPRE FALSE EM PRODUÇÃO
'Datasources' => [
'default' => [
'host' => 'localhost',
'username' => 'usuario_producao',
'password' => 'senha_super_segura',
'database' => 'nome_do_banco',
],
],
'Security' => [
'salt' => 'UMA_CHAVE_MUITO_LONGA_E_ALEATORIA',
],
];
3. Otimização do Composer e Autoload
Em ambiente local, o Composer carrega muitas ferramentas de desenvolvimento (DebugKit, PHPUnit). No servidor, queremos apenas o necessário para rodar o app.
O comando de deploy deve ser:
Bash
composer install --no-dev --optimize-autoloader
--no-dev: Remove bibliotecas de teste e debug.--optimize-autoloader: Cria um mapa de classes estático, o que aumenta drasticamente a velocidade do carregamento do PHP.
4. Permissões de Pastas e Segurança
O CakePHP precisa de permissão de escrita em duas pastas específicas para funcionar: tmp/ (para cache e logs) e logs/.
No servidor Linux, você geralmente precisará ajustar o dono e o grupo das pastas para o usuário do servidor web (como www-data ou nginx):
Bash
chown -R www-data:www-data tmp/ logs/
chmod -R 775 tmp/ logs/
Dica de Segurança: Garanta que a sua pasta raiz do servidor web (DocumentRoot) aponte para a pasta webroot/ do CakePHP e não para a raiz do projeto. Isso impede que arquivos sensíveis como o composer.json sejam acessíveis via navegador.
5. Deploy Automatizado vs. FTP
Se você ainda usa FTP para arrastar arquivos manualmente, está correndo riscos. O deploy profissional deve ser repetível e seguro.
A. Deploy via Git (Simples e Eficaz)
No servidor, você faz um git pull da sua branch principal (main/master).
Bash
git pull origin main
composer install --no-dev
bin/cake migrations migrate
bin/cake cache clear_all
B. Deploy via CI/CD (Nível Sênior)
Utilizar ferramentas como GitHub Actions permite que, ao fazer um “Push”, o servidor execute automaticamente os testes unitários (Artigo 23). Se os testes passarem, ele faz o deploy sozinho.
6. Migrations e Cache de Metadados
Ao fazer o deploy, você precisa atualizar a estrutura do banco de dados e garantir que o CakePHP reconheça as mudanças.
- Migrations: Execute
bin/cake migrations migratepara aplicar novas tabelas ou colunas. - ORM Cache: O CakePHP armazena o esquema das tabelas em cache para não consultar o
DESCRIBE tableem cada requisição. Em produção, você deve gerar esse cache:Bashbin/cake schema_cache build --connection default
7. Assets e CDN (Revisitando o Artigo 24)
Se você usa Tailwind CSS ou Vite, o deploy é o momento de gerar o “build” final.
Bash
npm install
npm run build
Certifique-se de que os arquivos gerados na pasta webroot/dist ou webroot/css sejam enviados para o servidor ou gerados lá mesmo se houver Node.js disponível.
8. Verificações Pós-Deploy: O Checklist Final
Após o site estar “no ar”, faça estas verificações rápidas:
- Modo Debug: Tente acessar uma página que não existe. Você deve ver uma página 404 genérica, não o erro detalhado do CakePHP.
- Logs de Erro: Verifique
logs/error.logpara garantir que não há conexões de banco falhando ou permissões negadas. - Certificado SSL: Garanta que o HTTPS está ativo e que o
Security.forceRsrc(se configurado) está redirecionando corretamente. - Performance: Verifique se o Redis ou File Cache (Artigo 25) está funcionando e se o site carrega rápido.
Conclusão: A Celebração do Trabalho Concluído
Fazer o Deploy de aplicações CakePHP é o ato final de um processo de criação rigoroso. Ao seguir as boas práticas de segurança, otimização e automação, você transforma o lançamento de um projeto em um evento tranquilo e profissional.
Seja para colocar seu portfólio no ar, lançar um novo artigo no blog ou abrir as portas do seu SaaS, o deploy bem feito é o que garante que sua reputação como desenvolvedor especialista seja mantida. Agora, o mundo pode ver do que você é capaz.
Parabéns! Você concluiu a jornada do desenvolvimento à produção. Sua aplicação CakePHP não é mais apenas código no seu HD; é uma solução viva na internet.
Mas antes de dominar o CakePHP, se for o seu caso, toda jornada tem um início. Vamos entender quais são os conhecimentos básicos necessários para aproveitar ao máximo este poderoso framework. Para iniciar seus estudos no CakePHP, você precisará dominar as seguintes tecnologias:
E se você gosta do nosso conteúdo, não deixe de contribuir adquirindo os serviços e produtos dos nossos apoiadores e empresas que somos associados.
Dica de Especialista: Sempre tenha um plano de “Rollback”. Se algo der muito errado no deploy, você deve conseguir voltar para a versão anterior em segundos (o Git facilita muito isso com o comando git checkout [id_do_commit_anterior]).










