{"id":5932,"date":"2026-04-15T13:55:50","date_gmt":"2026-04-15T16:55:50","guid":{"rendered":"https:\/\/thiagorossi.com.br\/blog\/?p=5932"},"modified":"2026-04-15T13:58:33","modified_gmt":"2026-04-15T16:58:33","slug":"deploy-cakephp","status":"publish","type":"post","link":"https:\/\/thiagorossi.com.br\/blog\/deploy-cakephp\/","title":{"rendered":"Deploy CakePHP"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de leitura: <\/span> <span class=\"rt-time\"> 5<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>\n<p class=\"has-medium-font-size wp-block-paragraph\">Deploy CakePHP: Voc\u00ea j\u00e1 passou semanas ou meses escrevendo c\u00f3digo, refinando o banco de dados e garantindo que cada <strong>Element<\/strong> e <strong>Service<\/strong> 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\u00e1-lo no ar para o mundo. O &#8220;deploy&#8221; n\u00e3o \u00e9 apenas copiar arquivos via FTP; \u00e9 um processo estrat\u00e9gico que garante que sua aplica\u00e7\u00e3o continue segura, r\u00e1pida e funcional.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Como especialista em <strong>CakePHP<\/strong>, preparei este vig\u00e9simo sexto artigo da nossa s\u00e9rie para ser o seu guia definitivo de <strong>Deploy<\/strong>. Vamos aprender como migrar sua aplica\u00e7\u00e3o para a produ\u00e7\u00e3o de forma profissional, automatizada e sem aquele frio na barriga de ver o site sair do ar.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">Deploy de Aplica\u00e7\u00f5es CakePHP: Do ambiente local para a produ\u00e7\u00e3o<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Deploy CakePHP: O sucesso de um deploy reside na paridade entre ambientes. No seu computador, voc\u00ea tem total controle; no servidor de produ\u00e7\u00e3o, voc\u00ea lida com restri\u00e7\u00f5es de seguran\u00e7a, permiss\u00f5es de pastas e vari\u00e1veis de ambiente. Para que o seu blog ou o portal <strong>RPJobs<\/strong> funcionem perfeitamente, precisamos seguir um checklist rigoroso que vai desde a configura\u00e7\u00e3o do PHP at\u00e9 a otimiza\u00e7\u00e3o do Composer.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">1. Prepara\u00e7\u00e3o do Servidor: O Ambiente Ideal<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">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:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>PHP 8.1+:<\/strong> Com extens\u00f5es essenciais como <code>mbstring<\/code>, <code>intl<\/code>, <code>simplexml<\/code> e <code>pdo_mysql<\/code>.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Servidor Web:<\/strong> Apache (com <code>mod_rewrite<\/code> habilitado) ou Nginx.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Banco de Dados:<\/strong> MySQL ou MariaDB configurado com suporte a <code>utf8mb4<\/code>.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">2. Gerenciando Configura\u00e7\u00f5es Sens\u00edveis (<code>app_local.php<\/code>)<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Uma das maiores falhas de seguran\u00e7a \u00e9 subir senhas do banco de dados no Git. O CakePHP resolve isso dividindo a configura\u00e7\u00e3o em dois arquivos:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong><code>config\/app.php<\/code>:<\/strong> Cont\u00e9m as configura\u00e7\u00f5es gen\u00e9ricas que n\u00e3o mudam entre ambientes.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong><code>config\/app_local.php<\/code>:<\/strong> Cont\u00e9m as credenciais do banco de dados, chaves de API e o modo <code>debug<\/code>. <strong>Este arquivo deve estar no seu <code>.gitignore<\/code>.<\/strong><\/li>\n<\/ol>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">No Servidor de Produ\u00e7\u00e3o:<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Crie o arquivo <code>app_local.php<\/code> manualmente ou use vari\u00e1veis de ambiente (.env).<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">PHP<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>\/\/ config\/app_local.php (Produ\u00e7\u00e3o)\nreturn &#91;\n    'debug' =&gt; false, \/\/ REGRA DE OURO: SEMPRE FALSE EM PRODU\u00c7\u00c3O\n    'Datasources' =&gt; &#91;\n        'default' =&gt; &#91;\n            'host' =&gt; 'localhost',\n            'username' =&gt; 'usuario_producao',\n            'password' =&gt; 'senha_super_segura',\n            'database' =&gt; 'nome_do_banco',\n        ],\n    ],\n    'Security' =&gt; &#91;\n        'salt' =&gt; 'UMA_CHAVE_MUITO_LONGA_E_ALEATORIA',\n    ],\n];\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">3. Otimiza\u00e7\u00e3o do Composer e Autoload<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Em ambiente local, o Composer carrega muitas ferramentas de desenvolvimento (DebugKit, PHPUnit). No servidor, queremos apenas o necess\u00e1rio para rodar o app.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O comando de deploy deve ser:<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Bash<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>composer install --no-dev --optimize-autoloader\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><code>--no-dev<\/code>: Remove bibliotecas de teste e debug.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><code>--optimize-autoloader<\/code>: Cria um mapa de classes est\u00e1tico, o que aumenta drasticamente a velocidade do carregamento do PHP.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">4. Permiss\u00f5es de Pastas e Seguran\u00e7a<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O CakePHP precisa de permiss\u00e3o de escrita em duas pastas espec\u00edficas para funcionar: <code>tmp\/<\/code> (para cache e logs) e <code>logs\/<\/code>.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">No servidor Linux, voc\u00ea geralmente precisar\u00e1 ajustar o dono e o grupo das pastas para o usu\u00e1rio do servidor web (como <code>www-data<\/code> ou <code>nginx<\/code>):<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Bash<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>chown -R www-data:www-data tmp\/ logs\/\nchmod -R 775 tmp\/ logs\/\n<\/code><\/pre>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Dica de Seguran\u00e7a:<\/strong> Garanta que a sua pasta raiz do servidor web (DocumentRoot) aponte para a pasta <code>webroot\/<\/code> do CakePHP e n\u00e3o para a raiz do projeto. Isso impede que arquivos sens\u00edveis como o <code>composer.json<\/code> sejam acess\u00edveis via navegador.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">5. Deploy Automatizado vs. FTP<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Se voc\u00ea ainda usa FTP para arrastar arquivos manualmente, est\u00e1 correndo riscos. O deploy profissional deve ser repet\u00edvel e seguro.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">A. Deploy via Git (Simples e Eficaz)<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">No servidor, voc\u00ea faz um <code>git pull<\/code> da sua branch principal (main\/master).<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Bash<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>git pull origin main\ncomposer install --no-dev\nbin\/cake migrations migrate\nbin\/cake cache clear_all\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">B. Deploy via CI\/CD (N\u00edvel S\u00eanior)<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Utilizar ferramentas como <strong>GitHub Actions<\/strong> permite que, ao fazer um &#8220;Push&#8221;, o servidor execute automaticamente os testes unit\u00e1rios (Artigo 23). Se os testes passarem, ele faz o deploy sozinho.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">6. Migrations e Cache de Metadados<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Ao fazer o deploy, voc\u00ea precisa atualizar a estrutura do banco de dados e garantir que o CakePHP reconhe\u00e7a as mudan\u00e7as.<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Migrations:<\/strong> Execute <code>bin\/cake migrations migrate<\/code> para aplicar novas tabelas ou colunas.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>ORM Cache:<\/strong> O CakePHP armazena o esquema das tabelas em cache para n\u00e3o consultar o <code>DESCRIBE table<\/code> em cada requisi\u00e7\u00e3o. Em produ\u00e7\u00e3o, voc\u00ea deve gerar esse cache:Bash<code>bin\/cake schema_cache build --connection default<\/code><\/li>\n<\/ol>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">7. Assets e CDN (Revisitando o Artigo 24)<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Se voc\u00ea usa <strong>Tailwind CSS<\/strong> ou <strong>Vite<\/strong>, o deploy \u00e9 o momento de gerar o &#8220;build&#8221; final.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Bash<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>npm install\nnpm run build\n<\/code><\/pre>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Certifique-se de que os arquivos gerados na pasta <code>webroot\/dist<\/code> ou <code>webroot\/css<\/code> sejam enviados para o servidor ou gerados l\u00e1 mesmo se houver Node.js dispon\u00edvel.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">8. Verifica\u00e7\u00f5es P\u00f3s-Deploy: O Checklist Final<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Ap\u00f3s o site estar &#8220;no ar&#8221;, fa\u00e7a estas verifica\u00e7\u00f5es r\u00e1pidas:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Modo Debug:<\/strong> Tente acessar uma p\u00e1gina que n\u00e3o existe. Voc\u00ea deve ver uma p\u00e1gina 404 gen\u00e9rica, n\u00e3o o erro detalhado do CakePHP.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Logs de Erro:<\/strong> Verifique <code>logs\/error.log<\/code> para garantir que n\u00e3o h\u00e1 conex\u00f5es de banco falhando ou permiss\u00f5es negadas.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Certificado SSL:<\/strong> Garanta que o HTTPS est\u00e1 ativo e que o <code>Security.forceRsrc<\/code> (se configurado) est\u00e1 redirecionando corretamente.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Performance:<\/strong> Verifique se o <strong>Redis<\/strong> ou <strong>File Cache<\/strong> (Artigo 25) est\u00e1 funcionando e se o site carrega r\u00e1pido.<\/li>\n<\/ol>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">Conclus\u00e3o: A Celebra\u00e7\u00e3o do Trabalho Conclu\u00eddo<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Fazer o <strong>Deploy de aplica\u00e7\u00f5es CakePHP<\/strong> \u00e9 o ato final de um processo de cria\u00e7\u00e3o rigoroso. Ao seguir as boas pr\u00e1ticas de seguran\u00e7a, otimiza\u00e7\u00e3o e automa\u00e7\u00e3o, voc\u00ea transforma o lan\u00e7amento de um projeto em um evento tranquilo e profissional.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Seja para colocar seu portf\u00f3lio no ar, lan\u00e7ar um novo artigo no blog ou abrir as portas do seu SaaS, o deploy bem feito \u00e9 o que garante que sua reputa\u00e7\u00e3o como desenvolvedor especialista seja mantida. Agora, o mundo pode ver do que voc\u00ea \u00e9 capaz.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Parab\u00e9ns! Voc\u00ea concluiu a jornada do desenvolvimento \u00e0 produ\u00e7\u00e3o. Sua aplica\u00e7\u00e3o CakePHP n\u00e3o \u00e9 mais apenas c\u00f3digo no seu HD; \u00e9 uma solu\u00e7\u00e3o viva na internet.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Mas antes de dominar o CakePHP, se for o seu caso, toda jornada tem um in\u00edcio. Vamos entender quais s\u00e3o os conhecimentos b\u00e1sicos necess\u00e1rios para aproveitar ao m\u00e1ximo este poderoso framework. Para iniciar seus estudos no CakePHP, voc\u00ea precisar\u00e1 dominar as seguintes tecnologias:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/blog\/categoria\/html\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/html.webp\" alt=\"HTML\" class=\"wp-image-600\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/html.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/html-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">HTML<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/blog\/categoria\/css\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/Capa-Artigos-Linux.webp\" alt=\"CSS\" class=\"wp-image-702\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/Capa-Artigos-Linux.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/Capa-Artigos-Linux-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">CSS<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/blog\/categoria\/javascript\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript.webp\" alt=\"Javascript\" class=\"wp-image-804\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">JavaScript<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/blog\/categoria\/sql\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2.webp\" alt=\"SQL\" class=\"wp-image-942\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/05\/Capa-Artigos-2-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">SQL<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/blog\/categoria\/php\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png\" alt=\"Capa Curso PHP\" class=\"wp-image-2835\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP.png 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/11\/Capa-PHP-300x169.png 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">PHP<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">E se voc\u00ea gosta do nosso conte\u00fado, n\u00e3o deixe de contribuir adquirindo os servi\u00e7os e produtos dos nossos apoiadores e empresas que somos associados.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/hostinger.com.br\/?REFERRALCODE=1THIAGO62\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/03\/hostinger.png\" alt=\"Hospedagem Hostinger\" class=\"wp-image-92\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/amzn.to\/3SNDYlc\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/ofertas-amazon.webp\" alt=\"Ofertas Amazon\" class=\"wp-image-1308\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/amzn.to\/3SNKmt0\" target=\"_blank\" rel=\" noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/amazonprime.webp\" alt=\"Amazon Prime\" class=\"wp-image-1307\"\/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Dica de Especialista:<\/strong> Sempre tenha um plano de &#8220;Rollback&#8221;. Se algo der muito errado no deploy, voc\u00ea deve conseguir voltar para a vers\u00e3o anterior em segundos (o Git facilita muito isso com o comando <code>git checkout [id_do_commit_anterior]<\/code>).<\/p>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de leitura: <\/span> <span class=\"rt-time\"> 5<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>Deploy CakePHP: Voc\u00ea j\u00e1 passou semanas ou meses escrevendo c\u00f3digo, refinando o banco de dados&#8230;<\/p>\n","protected":false},"author":1,"featured_media":5819,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[97],"tags":[],"class_list":["post-5932","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cakephp","wpcat-97-id"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Deploy CakePHP - BLOG THIAGO ROSSI<\/title>\n<meta name=\"description\" content=\"Deploy CakePHP: O sucesso de um deploy reside na paridade entre ambientes. No seu computador, voc\u00ea tem total controle; no servidor de ...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thiagorossi.com.br\/blog\/deploy-cakephp\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deploy CakePHP - BLOG THIAGO ROSSI\" \/>\n<meta property=\"og:description\" content=\"Deploy CakePHP: O sucesso de um deploy reside na paridade entre ambientes. No seu computador, voc\u00ea tem total controle; no servidor de ...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thiagorossi.com.br\/blog\/deploy-cakephp\/\" \/>\n<meta property=\"og:site_name\" content=\"BLOG THIAGO ROSSI\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-15T16:55:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-15T16:58:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/capa-cakephp.png\" \/>\n\t<meta property=\"og:image:width\" content=\"758\" \/>\n\t<meta property=\"og:image:height\" content=\"426\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Thiago Rossi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Thiago Rossi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/deploy-cakephp\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/deploy-cakephp\\\/\"},\"author\":{\"name\":\"Thiago Rossi\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\"},\"headline\":\"Deploy CakePHP\",\"datePublished\":\"2026-04-15T16:55:50+00:00\",\"dateModified\":\"2026-04-15T16:58:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/deploy-cakephp\\\/\"},\"wordCount\":1047,\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/deploy-cakephp\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/capa-cakephp.png\",\"articleSection\":[\"CakePHP\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/deploy-cakephp\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/deploy-cakephp\\\/\",\"name\":\"Deploy CakePHP - BLOG THIAGO ROSSI\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/deploy-cakephp\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/deploy-cakephp\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/capa-cakephp.png\",\"datePublished\":\"2026-04-15T16:55:50+00:00\",\"dateModified\":\"2026-04-15T16:58:33+00:00\",\"description\":\"Deploy CakePHP: O sucesso de um deploy reside na paridade entre ambientes. No seu computador, voc\u00ea tem total controle; no servidor de ...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/deploy-cakephp\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/deploy-cakephp\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/deploy-cakephp\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/capa-cakephp.png\",\"contentUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/capa-cakephp.png\",\"width\":758,\"height\":426,\"caption\":\"CakePHP\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/deploy-cakephp\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deploy CakePHP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\",\"name\":\"THIAGO ROSSI\",\"description\":\"Mais de 20 anos de experi\u00eancia no mercado de TI!\",\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"alternateName\":\"TR | CURSO WEB DEV\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\",\"name\":\"THIAGO ROSSI\",\"alternateName\":\"TR | CURSO WEB DEV\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/new-logo.webp\",\"contentUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/new-logo.webp\",\"width\":300,\"height\":300,\"caption\":\"THIAGO ROSSI\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/linkedin.com\\\/in\\\/thiagox86\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\",\"name\":\"Thiago Rossi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"caption\":\"Thiago Rossi\"},\"description\":\"Com mais de 20 anos de jornada na tecnologia, minha trajet\u00f3ria evoluiu do ensino t\u00e9cnico \u00e0 arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de solu\u00e7\u00f5es de Intelig\u00eancia Artificial nativa e an\u00e1lise de dados p\u00fablicos, utilizando o ecossistema PHP para transformar dados brutos em transpar\u00eancia e efici\u00eancia. Como autor e desenvolvedor, acredito na democratiza\u00e7\u00e3o do conhecimento. Essa vis\u00e3o resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura at\u00e9 os bastidores da ind\u00fastria de Jogos e IA. No universo de Game Design, sou autor do livro \\\"GDD \u2013 O Guia Definitivo\\\" e documento ativamente meus processos atrav\u00e9s de DevLogs, unindo rigor t\u00e9cnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso \u00e9 conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.\",\"sameAs\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\",\"https:\\\/\\\/instagram.com\\\/thiagorossix86\",\"https:\\\/\\\/linkedin.com\\\/in\\\/thiagox86\"],\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/author\\\/thiagorossi\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Deploy CakePHP - BLOG THIAGO ROSSI","description":"Deploy CakePHP: O sucesso de um deploy reside na paridade entre ambientes. No seu computador, voc\u00ea tem total controle; no servidor de ...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thiagorossi.com.br\/blog\/deploy-cakephp\/","og_locale":"pt_BR","og_type":"article","og_title":"Deploy CakePHP - BLOG THIAGO ROSSI","og_description":"Deploy CakePHP: O sucesso de um deploy reside na paridade entre ambientes. No seu computador, voc\u00ea tem total controle; no servidor de ...","og_url":"https:\/\/thiagorossi.com.br\/blog\/deploy-cakephp\/","og_site_name":"BLOG THIAGO ROSSI","article_published_time":"2026-04-15T16:55:50+00:00","article_modified_time":"2026-04-15T16:58:33+00:00","og_image":[{"width":758,"height":426,"url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/capa-cakephp.png","type":"image\/png"}],"author":"Thiago Rossi","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Thiago Rossi","Est. tempo de leitura":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thiagorossi.com.br\/blog\/deploy-cakephp\/#article","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/deploy-cakephp\/"},"author":{"name":"Thiago Rossi","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87"},"headline":"Deploy CakePHP","datePublished":"2026-04-15T16:55:50+00:00","dateModified":"2026-04-15T16:58:33+00:00","mainEntityOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/deploy-cakephp\/"},"wordCount":1047,"publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/deploy-cakephp\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/capa-cakephp.png","articleSection":["CakePHP"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/thiagorossi.com.br\/blog\/deploy-cakephp\/","url":"https:\/\/thiagorossi.com.br\/blog\/deploy-cakephp\/","name":"Deploy CakePHP - BLOG THIAGO ROSSI","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/deploy-cakephp\/#primaryimage"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/deploy-cakephp\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/capa-cakephp.png","datePublished":"2026-04-15T16:55:50+00:00","dateModified":"2026-04-15T16:58:33+00:00","description":"Deploy CakePHP: O sucesso de um deploy reside na paridade entre ambientes. No seu computador, voc\u00ea tem total controle; no servidor de ...","breadcrumb":{"@id":"https:\/\/thiagorossi.com.br\/blog\/deploy-cakephp\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thiagorossi.com.br\/blog\/deploy-cakephp\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/deploy-cakephp\/#primaryimage","url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/capa-cakephp.png","contentUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/capa-cakephp.png","width":758,"height":426,"caption":"CakePHP"},{"@type":"BreadcrumbList","@id":"https:\/\/thiagorossi.com.br\/blog\/deploy-cakephp\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thiagorossi.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Deploy CakePHP"}]},{"@type":"WebSite","@id":"https:\/\/thiagorossi.com.br\/blog\/#website","url":"https:\/\/thiagorossi.com.br\/blog\/","name":"THIAGO ROSSI","description":"Mais de 20 anos de experi\u00eancia no mercado de TI!","publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"alternateName":"TR | CURSO WEB DEV","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thiagorossi.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/thiagorossi.com.br\/blog\/#organization","name":"THIAGO ROSSI","alternateName":"TR | CURSO WEB DEV","url":"https:\/\/thiagorossi.com.br\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/new-logo.webp","contentUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/new-logo.webp","width":300,"height":300,"caption":"THIAGO ROSSI"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/linkedin.com\/in\/thiagox86"]},{"@type":"Person","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87","name":"Thiago Rossi","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","caption":"Thiago Rossi"},"description":"Com mais de 20 anos de jornada na tecnologia, minha trajet\u00f3ria evoluiu do ensino t\u00e9cnico \u00e0 arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de solu\u00e7\u00f5es de Intelig\u00eancia Artificial nativa e an\u00e1lise de dados p\u00fablicos, utilizando o ecossistema PHP para transformar dados brutos em transpar\u00eancia e efici\u00eancia. Como autor e desenvolvedor, acredito na democratiza\u00e7\u00e3o do conhecimento. Essa vis\u00e3o resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura at\u00e9 os bastidores da ind\u00fastria de Jogos e IA. No universo de Game Design, sou autor do livro \"GDD \u2013 O Guia Definitivo\" e documento ativamente meus processos atrav\u00e9s de DevLogs, unindo rigor t\u00e9cnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso \u00e9 conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.","sameAs":["https:\/\/thiagorossi.com.br\/blog","https:\/\/instagram.com\/thiagorossix86","https:\/\/linkedin.com\/in\/thiagox86"],"url":"https:\/\/thiagorossi.com.br\/blog\/author\/thiagorossi\/"}]}},"_links":{"self":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/5932","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/comments?post=5932"}],"version-history":[{"count":2,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/5932\/revisions"}],"predecessor-version":[{"id":5934,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/5932\/revisions\/5934"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/media\/5819"}],"wp:attachment":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/media?parent=5932"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/categories?post=5932"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/tags?post=5932"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}