cPanel + Laravel

📋 Requisitos

Para conseguir prosseguir com sucesso no tutorial, é fundamental que você conheça minimamente sobre:

  • Sistema de arquivos Linux
  • Desenvolvimento Web
  • PHP
  • Laravel

Além disso precisará de acesso SSH à hospedagem para criação dos links simbólicos, os quais não podem ser criados via Gerenciador de Arquivos do cPanel.

🌱 Criando o projeto

Primeiramente, crie um projeto em Laravel em seu ambiente de desenvolvimento (normalmente o seu computador local), com o código abaixo.

composer create-project laravel/laravel example-app

Com o projeto criado, você deverá ter uma estrutura de pastas semelhante a esta:

Laravel - Arquivos

Você também consegue executar o servidor de desenvolvimento, na raiz do projeto, para se certificar de que está funcionando normalmente, através do comando:

php artisan serve

Se tudo ocorreu bem, a página padrão do framework deverá aparecer em http://localhost:8000

Laravel - Site

🔨 Compilando

Agora com o projeto instalado e funcional, podemos entender melhor a parte da compilação ou “build”. Esta fase do projeto consiste em prepararmos o projeto para que opere da forma mais eficiente possível para um ambiente de produção.

No caso do Laravel, precisamos antes instalar somente as dependências de produção, excluindo as dependências de desenvolvimento, com o comando abaixo:

composer install --optimize-autoloader --no-dev

Feita a instalação das dependências de produção, agora podemos fazer a compactação do projeto e subir o arquivo para hospedagem.

🚀 Publicação

Agora, com o site gerado podemos prosseguir para a parte de publicação para o site ficar acessível publicamente em seu domínio!

Existem diversas formas de fazer o deploy. Focaremos na forma manual para que você entenda os fundamentos e saiba o que é necessário para automatizar este fluxo caso desejar.

Primeiramente, pensando na segurança das variáveis de ambiente que são carregadas pelo framework, precisamos manter o projeto fora de public_html, portanto, neste exemplo aqui, foi optado por criar uma pasta sites no diretório home (/home/user) do usuário, onde nesta pasta ficarão todos os projetos desenvolvidos em Laravel.

Laravel - Pastas

Criado o diretório, agora podemos criar os links simbólicos que apontarão para os arquivos de entrada do site, no caso da estrutura do Laravel, estes ficam dentro do diretório public na raiz do projeto. Para criá-los foi aberto o terminal, entrado no diretório public_html e executado os comandos abaixo:

ln -s ../sites/example-app/public/index.php index.php

ln -s ../sites/example-app/public/favicon.ico favicon.ico

ln -s ../sites/example-app/public/robots.txt robots.txt

Estes links simbólicos serão criados em public_html (levando em conta que estaremos fazendo para o site principal e que o nome do projeto é example-app) e estarão apontando para seus respectivos nomes dentro do projeto ficando da seguinte forma:

Laravel - Links simbólicos

Criados os links, poderemos fazer o upload do projeto em sites.

Para fazermos o upload do projeto, precisarás antes compactar o diretório do projeto. Neste caso será usado o próprio gerenciador de arquivos do Windows para facilitar o entendimento, mas também poderia ser utilizado o terminal para isso.

Gerar arquivo ZIP

Feita a compressão, abra o diretório sites, que foi criado no passo anterior, e faça o upload do arquivo e logo em seguida a sua extração, no mesmo local. No final, o diretório deverá ficar dessa forma (também poderá remover o arquivo compactado se desejar):

Laravel - Pasta

Agora com o projeto na hospedagem, abra um terminal e abra o diretório do projeto dentro de sites, e execute o comando de otimização para criar o cache dos arquivos para deixar o projeto mais performático.

php artisan optimize
Artisan optimize

Por último, faça a movimentação do arquivo .htaccess que está no diretório public do seu projeto laravel, para o diretório raiz que é apontado pelo domínio (no mesmo lugar onde estão os link simbólicos criados anteriormente), no final ao conferir o diretório raiz do domínio você terá estes arquivos.

Laravel - Public_html

E finalmente você poderá abrir o site e ver o projeto em Laravel sendo executado em produção. 🚀

Laravel - Site

Disclaimer: todos os comandos utilizados neste tutorial foram utilizados com base em versões específicas da documentação oficial das tecnologias utilizadas (PHP 8.1, Composer 2.7.7, Laravel v10), portanto, consulte a documentação oficial para ter as informações mais atualizadas.