{"id":5836,"date":"2026-04-04T10:33:44","date_gmt":"2026-04-04T13:33:44","guid":{"rendered":"https:\/\/thiagorossi.com.br\/blog\/?p=5836"},"modified":"2026-04-04T10:55:20","modified_gmt":"2026-04-04T13:55:20","slug":"configurando-cakephp-php-8-composer-e-servidor","status":"publish","type":"post","link":"https:\/\/thiagorossi.com.br\/blog\/configurando-cakephp-php-8-composer-e-servidor\/","title":{"rendered":"Configurando CakePHP &#8211; PHP 8, Composer e Servidor"},"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\">Configurando CakePHP: Voc\u00ea j\u00e1 entendeu que o CakePHP \u00e9 um framework poderoso que preza pela conven\u00e7\u00e3o. Mas, antes de ver a m\u00e1gica acontecer, precisamos garantir que as funda\u00e7\u00f5es da sua casa estejam s\u00f3lidas. O desenvolvimento moderno de PHP n\u00e3o \u00e9 mais sobre baixar um arquivo <code>.zip<\/code> e descompactar no servidor. Hoje, falamos de depend\u00eancias, extens\u00f5es espec\u00edficas e servidores web otimizados.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Neste guia, vamos passar pelos tr\u00eas pilares essenciais: o interpretador (<strong>PHP 8<\/strong>), o gerenciador de depend\u00eancias (<strong>Composer<\/strong>) e o servidor web (<strong>Apache\/Nginx<\/strong>).<\/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. O Motor: Instalando o PHP 8.x<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O CakePHP 4 e 5 (as vers\u00f5es atuais de 2026) exigem vers\u00f5es recentes do PHP. Recomendo fortemente o uso do <strong>PHP 8.1 ou superior<\/strong>, devido \u00e0s melhorias de performance e seguran\u00e7a (como JIT e propriedades promovidas no construtor).<\/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\">Requisitos de Extens\u00e3o<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O CakePHP n\u00e3o vive apenas do PHP &#8220;puro&#8221;. Ele precisa de bibliotecas espec\u00edficas para funcionar. Certifique-se de que seu <code>php.ini<\/code> tenha as seguintes extens\u00f5es habilitadas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>mbstring<\/strong>: Para manipula\u00e7\u00e3o de strings multibyte.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>intl<\/strong>: Essencial para internacionaliza\u00e7\u00e3o e formatos de data.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>simplexml &amp; libxml<\/strong>: Para leitura de XML.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>pdo_mysql \/ pdo_pgsql<\/strong>: Para comunica\u00e7\u00e3o com seu banco de dados.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Dica de Especialista:<\/strong> Se voc\u00ea usa Linux (Ubuntu\/Debian), o comando para garantir que tudo esteja l\u00e1 \u00e9:<\/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>sudo apt install php8.2-cli php8.2-common php8.2-mysql php8.2-zip php8.2-gd php8.2-mbstring php8.2-curl php8.2-xml php8.2-bcmath php8.2-intl\n<\/code><\/pre>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Para usu\u00e1rios de Windows ou macOS, ferramentas como <strong>Herd<\/strong>, <strong>XAMPP<\/strong> ou <strong>Docker<\/strong> j\u00e1 costumam trazer essas extens\u00f5es, mas vale conferir rodando <code>php -m<\/code> no terminal para listar os m\u00f3dulos ativos.<\/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\">2. O Maestro: Composer<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O <strong>Composer<\/strong> \u00e9 o gerenciador de depend\u00eancias oficial do PHP. No mundo do CakePHP, ele n\u00e3o \u00e9 opcional; ele \u00e9 o cora\u00e7\u00e3o da instala\u00e7\u00e3o. \u00c9 ele quem baixa o n\u00facleo do framework, as bibliotecas de seguran\u00e7a e qualquer plugin que voc\u00ea queira adicionar depois.<\/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\">Como instalar e testar<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Ap\u00f3s instalar o Composer seguindo o <a target=\"_blank\" rel=\"noreferrer noopener\" href=\"https:\/\/getcomposer.org\/\">site oficial<\/a>, voc\u00ea deve ser capaz de rodar:<\/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 --version\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\">Por que o Composer \u00e9 vital para o CakePHP?<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O CakePHP utiliza o <strong>Autoloading<\/strong> do Composer. Isso significa que voc\u00ea n\u00e3o precisa usar <code>include<\/code> ou <code>require<\/code> em cada arquivo. Basta declarar o <code>namespace<\/code> e o Composer se encarrega de encontrar e carregar a classe necess\u00e1ria. Isso mant\u00e9m o seu projeto dentro dos padr\u00f5es PSR-4 de interoperabilidade.<\/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\">3. O Servidor Web: Apache vs. Nginx<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Aqui \u00e9 onde muitos desenvolvedores se confundem. O CakePHP precisa de um recurso chamado <strong>URL Rewriting<\/strong> (Reescrita de URL). Sem isso, suas rotas bonitas como <code>meusite.com\/artigos<\/code> se transformariam em <code>meusite.com\/index.php?url=artigos<\/code>.<\/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\">Configurando o Apache (<code>.htaccess<\/code>)<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O Apache \u00e9 a escolha mais comum para quem est\u00e1 come\u00e7ando, pois o CakePHP j\u00e1 vem com arquivos <code>.htaccess<\/code> prontos. Voc\u00ea s\u00f3 precisa garantir que o m\u00f3dulo <code>mod_rewrite<\/code> esteja ativo.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">No arquivo de configura\u00e7\u00e3o do seu Virtual Host, certifique-se de que a diretiva <code>AllowOverride<\/code> est\u00e1 definida como <code>All<\/code>:<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Apache<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>&lt;VirtualHost *:80&gt;\n    ServerName cakephp.local\n    DocumentRoot \"\/caminho\/para\/seu\/projeto\/webroot\"\n\n    &lt;Directory \"\/caminho\/para\/seu\/projeto\/webroot\"&gt;\n        Options Indexes FollowSymLinks\n        AllowOverride All\n        Require all granted\n    &lt;\/Directory&gt;\n&lt;\/VirtualHost&gt;\n<\/code><\/pre>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Importante:<\/strong> Note que o <code>DocumentRoot<\/code> deve apontar para a pasta <strong>webroot<\/strong>, e n\u00e3o para a raiz do projeto. Isso \u00e9 uma medida de seguran\u00e7a vital para que seus arquivos de l\u00f3gica (<code>src\/<\/code>, <code>config\/<\/code>) n\u00e3o fiquem expostos na web.<\/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\">Configurando o Nginx<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O Nginx \u00e9 conhecido por sua alta performance e baixo consumo de mem\u00f3ria. Ele n\u00e3o l\u00ea arquivos <code>.htaccess<\/code>, ent\u00e3o voc\u00ea deve colocar as regras diretamente na configura\u00e7\u00e3o do servidor:<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Nginx<\/p>\n\n\n\n<pre class=\"wp-block-code has-medium-font-size\"><code>server {\n    listen 80;\n    server_name cakephp.local;\n    root \/var\/www\/projeto\/webroot;\n    index index.php;\n\n    location \/ {\n        try_files $uri $uri\/ \/index.php?$args;\n    }\n\n    location ~ \\.php$ {\n        include snippets\/fastcgi-php.conf;\n        fastcgi_pass unix:\/run\/php\/php8.2-fpm.sock;\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\">4. Estrutura de Pastas e Permiss\u00f5es<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Configurando CakePHP: Uma vez que voc\u00ea rodar o comando de cria\u00e7\u00e3o do projeto (que veremos no pr\u00f3ximo artigo), o CakePHP criar\u00e1 uma estrutura. No entanto, para que o servidor funcione, voc\u00ea precisa ajustar as permiss\u00f5es das pastas de escrita:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong><code>logs\/<\/code><\/strong>: Onde o CakePHP grava erros.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong><code>tmp\/<\/code><\/strong>: Onde ficam os caches e sess\u00f5es.<\/li>\n<\/ul>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">No Linux\/Mac, voc\u00ea deve garantir que o usu\u00e1rio do servidor web (<code>www-data<\/code> ou <code>apache<\/code>) tenha poder de escrita nessas pastas:<\/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>chmod -R 775 tmp logs\nchown -R seu-usuario:www-data tmp logs\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\">5. Verificando a Sa\u00fade do Ambiente<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O CakePHP possui uma p\u00e1gina de &#8220;boas-vindas&#8221; que funciona como um checklist. Se voc\u00ea configurou tudo corretamente, ao acessar o projeto pelo navegador, voc\u00ea ver\u00e1 uma s\u00e9rie de \u00edcones verdes indicando:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li class=\"has-medium-font-size\">Vers\u00e3o do PHP compat\u00edvel.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Extens\u00e3o <code>intl<\/code> instalada.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Extens\u00e3o <code>mbstring<\/code> instalada.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Pasta <code>tmp<\/code> e <code>logs<\/code> com permiss\u00e3o de escrita.<\/li>\n\n\n\n<li class=\"has-medium-font-size\">Conex\u00e3o com o banco de dados (que faremos mais adiante).<\/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: Voc\u00ea est\u00e1 pronto para o pr\u00f3ximo n\u00edvel<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Configurando CakePHP: Configurar o ambiente pode parecer a parte menos &#8220;criativa&#8221; do desenvolvimento web, mas \u00e9 a que separa os amadores dos profissionais. Ter um ambiente com <strong>PHP 8<\/strong>, <strong>Composer<\/strong> e um servidor web bem configurado garante que voc\u00ea passe mais tempo criando funcionalidades e menos tempo brigando com mensagens de erro do sistema operacional.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Com o motor ligado e o combust\u00edvel no tanque, estamos prontos para o pr\u00f3ximo passo. No artigo 3, vamos finalmente rodar o comando que dar\u00e1 vida ao seu projeto: <strong>&#8220;Instala\u00e7\u00e3o do CakePHP: Criando seu primeiro projeto via CLI&#8221;<\/strong>.<\/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\">Configurando CakePHP: E por fim e n\u00e3o menos importante, compartilhe nossos artigos com aquele amigo iniciante ou aquele que j\u00e1 trabalha na \u00e1rea e precisa de um material de apoio completinho!<\/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>Configurando CakePHP: Voc\u00ea j\u00e1 entendeu que o CakePHP \u00e9 um framework poderoso que preza pela&#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-5836","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>Configurando CakePHP - PHP 8, Composer e Servidor - BLOG THIAGO ROSSI<\/title>\n<meta name=\"description\" content=\"Configurando CakePHP: Voc\u00ea j\u00e1 entendeu que o CakePHP \u00e9 um framework poderoso que preza pela conven\u00e7\u00e3o. Mas, antes de ver a m\u00e1gica acontecer...\" \/>\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\/configurando-cakephp-php-8-composer-e-servidor\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Configurando CakePHP - PHP 8, Composer e Servidor - BLOG THIAGO ROSSI\" \/>\n<meta property=\"og:description\" content=\"Configurando CakePHP: Voc\u00ea j\u00e1 entendeu que o CakePHP \u00e9 um framework poderoso que preza pela conven\u00e7\u00e3o. Mas, antes de ver a m\u00e1gica acontecer...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thiagorossi.com.br\/blog\/configurando-cakephp-php-8-composer-e-servidor\/\" \/>\n<meta property=\"og:site_name\" content=\"BLOG THIAGO ROSSI\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-04T13:33:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-04T13:55:20+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=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/configurando-cakephp-php-8-composer-e-servidor\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/configurando-cakephp-php-8-composer-e-servidor\\\/\"},\"author\":{\"name\":\"Thiago Rossi\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\"},\"headline\":\"Configurando CakePHP &#8211; PHP 8, Composer e Servidor\",\"datePublished\":\"2026-04-04T13:33:44+00:00\",\"dateModified\":\"2026-04-04T13:55:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/configurando-cakephp-php-8-composer-e-servidor\\\/\"},\"wordCount\":901,\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/configurando-cakephp-php-8-composer-e-servidor\\\/#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\\\/configurando-cakephp-php-8-composer-e-servidor\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/configurando-cakephp-php-8-composer-e-servidor\\\/\",\"name\":\"Configurando CakePHP - PHP 8, Composer e Servidor - BLOG THIAGO ROSSI\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/configurando-cakephp-php-8-composer-e-servidor\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/configurando-cakephp-php-8-composer-e-servidor\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/capa-cakephp.png\",\"datePublished\":\"2026-04-04T13:33:44+00:00\",\"dateModified\":\"2026-04-04T13:55:20+00:00\",\"description\":\"Configurando CakePHP: Voc\u00ea j\u00e1 entendeu que o CakePHP \u00e9 um framework poderoso que preza pela conven\u00e7\u00e3o. Mas, antes de ver a m\u00e1gica acontecer...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/configurando-cakephp-php-8-composer-e-servidor\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/configurando-cakephp-php-8-composer-e-servidor\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/configurando-cakephp-php-8-composer-e-servidor\\\/#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\\\/configurando-cakephp-php-8-composer-e-servidor\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Configurando CakePHP &#8211; PHP 8, Composer e Servidor\"}]},{\"@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":"Configurando CakePHP - PHP 8, Composer e Servidor - BLOG THIAGO ROSSI","description":"Configurando CakePHP: Voc\u00ea j\u00e1 entendeu que o CakePHP \u00e9 um framework poderoso que preza pela conven\u00e7\u00e3o. Mas, antes de ver a m\u00e1gica acontecer...","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\/configurando-cakephp-php-8-composer-e-servidor\/","og_locale":"pt_BR","og_type":"article","og_title":"Configurando CakePHP - PHP 8, Composer e Servidor - BLOG THIAGO ROSSI","og_description":"Configurando CakePHP: Voc\u00ea j\u00e1 entendeu que o CakePHP \u00e9 um framework poderoso que preza pela conven\u00e7\u00e3o. Mas, antes de ver a m\u00e1gica acontecer...","og_url":"https:\/\/thiagorossi.com.br\/blog\/configurando-cakephp-php-8-composer-e-servidor\/","og_site_name":"BLOG THIAGO ROSSI","article_published_time":"2026-04-04T13:33:44+00:00","article_modified_time":"2026-04-04T13:55:20+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":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thiagorossi.com.br\/blog\/configurando-cakephp-php-8-composer-e-servidor\/#article","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/configurando-cakephp-php-8-composer-e-servidor\/"},"author":{"name":"Thiago Rossi","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87"},"headline":"Configurando CakePHP &#8211; PHP 8, Composer e Servidor","datePublished":"2026-04-04T13:33:44+00:00","dateModified":"2026-04-04T13:55:20+00:00","mainEntityOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/configurando-cakephp-php-8-composer-e-servidor\/"},"wordCount":901,"publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/configurando-cakephp-php-8-composer-e-servidor\/#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\/configurando-cakephp-php-8-composer-e-servidor\/","url":"https:\/\/thiagorossi.com.br\/blog\/configurando-cakephp-php-8-composer-e-servidor\/","name":"Configurando CakePHP - PHP 8, Composer e Servidor - BLOG THIAGO ROSSI","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/configurando-cakephp-php-8-composer-e-servidor\/#primaryimage"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/configurando-cakephp-php-8-composer-e-servidor\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2026\/04\/capa-cakephp.png","datePublished":"2026-04-04T13:33:44+00:00","dateModified":"2026-04-04T13:55:20+00:00","description":"Configurando CakePHP: Voc\u00ea j\u00e1 entendeu que o CakePHP \u00e9 um framework poderoso que preza pela conven\u00e7\u00e3o. Mas, antes de ver a m\u00e1gica acontecer...","breadcrumb":{"@id":"https:\/\/thiagorossi.com.br\/blog\/configurando-cakephp-php-8-composer-e-servidor\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thiagorossi.com.br\/blog\/configurando-cakephp-php-8-composer-e-servidor\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/configurando-cakephp-php-8-composer-e-servidor\/#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\/configurando-cakephp-php-8-composer-e-servidor\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thiagorossi.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Configurando CakePHP &#8211; PHP 8, Composer e Servidor"}]},{"@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\/5836","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=5836"}],"version-history":[{"count":2,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/5836\/revisions"}],"predecessor-version":[{"id":5842,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/5836\/revisions\/5842"}],"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=5836"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/categories?post=5836"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/tags?post=5836"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}