PauloRB.dev

Desenvolvedor de Software

Guia de Deploy de Aplicação Laravel com Apache em uma VPS com Ubuntu e HTTPS | PauloRB.dev Guia de Deploy de Aplicação Laravel com Apache em uma VPS com Ubuntu e HTTPS – PauloRB.dev
Guia de Deploy de Aplicação Laravel com Apache em uma VPS com Ubuntu e HTTPS

Guia de Deploy de Aplicação Laravel com Apache em uma VPS com Ubuntu e HTTPS

Neste guia, você aprenderá a fazer o deploy de uma aplicação Laravel em uma VPS rodando Ubuntu com o servidor web Apache e configurar HTTPS utilizando o Certbot. Além de abordar como configurar um banco de dados MySQL na VPS.

Preparando o Servidor VPS

Atualize os pacotes do sistema:

sudo apt update && sudo apt upgrade -y

Instalando o Apache:

sudo apt install apache2 -y

Instalando o PHP e extensões necessárias:

sudo apt install php8.3-cli
sudo apt install php8.3-ctype php8.3-curl php8.3-dom php8.3-fileinfo php8.3-mbstring php8.3-opcache php8.3-pdo php8.3-tokenizer php8.3-xml php8.3-fpm php8.3-mysql php8.3-zip unzip

Instalando o Composer:

cd ~
curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php
HASH=`curl -sS https://composer.github.io/installer.sig`
echo $HASH
php -r “if (hash_file(‘SHA384’, ‘/tmp/composer-setup.php’) === ‘$HASH’) { echo ‘Installer verified’; } else { echo ‘Installer corrupt’; unlink(‘composer-setup.php’); } echo PHP_EOL;”
sudo php /tmp/composer-setup.php –install-dir=/usr/local/bin –filename=composer
composer

Instalando o MySQL:

sudo apt install mysql-server -y

Habilitando e Testando Serviços:

sudo systemctl enable mysql
sudo systemctl enable apache2
sudo systemctl enable php8.1-fpm

sudo systemctl status mysql
sudo systemctl status apache2
sudo systemctl status php8.1-fpm

Observação

Se sua aplicação Laravel utiliza o Node.js e npm, você precisará instalá-los também:

sudo apt install nodejs npm -y
node -v
npm -v

Configurando o Projeto Laravel

Clonando o repositório da sua aplicação Laravel:

cd /var/www
sudo git clone <https://github.com/usuario/seu-projeto-laravel.git>
cd seu-projeto-laravel

Instalando as dependências do Laravel:

sudo composer install –optimize-autoloader –no-dev

Copie o arquivo de exemplo de ambiente:

sudo cp .env.example .env

Gerando a chave da aplicação Laravel:

sudo php artisan key:generate

Configure o arquivo .env com as informações do banco de dados e outras configurações de ambiente necessárias.

Configurando as permissões das pastas de armazenamento e cache:

sudo chmod -R 777 storage
sudo chmod -R 777 bootstrap
sudo chmod -R 777 vendor

Configurar o Apache

Criando um arquivo de configuração para seu site:

sudo nano /etc/apache2/sites-available/seu-projeto-laravel.conf

Adicione o seguinte conteúdo ao arquivo de configuração:

<VirtualHost *:80>
ServerAdmin admin@seu-dominio.com
DocumentRoot /var/www/seu-projeto-laravel/public
ServerName seu-dominio.com
ServerAlias www.seu-dominio.com

<Directory /var/www/seu-projeto-laravel>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

<Directory /var/www/seu-projeto-laravel/public>
AllowOverride All
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/seu-projeto-laravel_error.log
CustomLog ${APACHE_LOG_DIR}/seu-projeto-laravel_access.log combined
</VirtualHost>

Ativando a configuração do site e os módulos necessários:

sudo a2ensite seu-projeto-laravel.conf
sudo a2enmod rewrite

Reiniciando o Apache para aplicar as mudanças:

sudo systemctl restart apache2

Configurar o Banco de Dados

Acessando o MySQL:

sudo mysql -u root -p

Criando o banco de dados e o usuário:

CREATE DATABASE nome_do_banco_de_dados;
CREATE USER ‘usuario’@’localhost’ IDENTIFIED BY ‘senha’;
GRANT ALL PRIVILEGES ON nome_do_banco_de_dados.* TO ‘usuario’@’localhost’;
FLUSH PRIVILEGES;
EXIT;

No arquivo .env, configure as credenciais do banco de dados que você acabou de criar.

Executando Migrações

Rodando as migrações para criar as tabelas no banco de dados:

cd /var/www/seu-projeto-laravel
sudo php artisan migrate

Configurar HTTPS com Certbot

Instalando o Certbot e o plugin para Apache:

sudo apt update
sudo apt install snapd
sudo snap install –classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

Obtenha o certificado SSL para seu domínio:

sudo certbot –apache

Siga as instruções interativas para:

  • Inserir seu endereço de e-mail
  • Aceitar os termos de serviço
  • Escolher o domínio para o qual você deseja ativar o HTTPS

Renove automaticamente os certificados SSL:

O Certbot cuida da renovação automática, mas é bom testar:

sudo certbot renew –dry-run

Considerações Finais

Sua aplicação Laravel agora deve estar rodando em sua VPS com Ubuntu usando o Apache e com HTTPS configurado e você pode acessá-lo através do domínio configurado.

 

Mais Posts

Como instalar o DBEAVEr via PPA no Ubuntu Linux e derivados.

Como instalar o DBEAVEr via PPA no Ubuntu Linux e derivados.

Vamos a mais um post HOW TO…. Abra o Terminal: Você pode fazer isso procurando por “Terminal” no menu de... Leia mais

Habilitar Sudo no Debian e seus derivados

Habilitar Sudo no Debian e seus derivados

Por padrão o debian não trás o sudo habilitado como estamos acostumados no Ubuntu e outro de seus derivados como... Leia mais

Como ignorar permissões do Linux em repositórios GIT.

Como ignorar permissões do Linux em repositórios GIT.

Recentemente me deparei com um problema curioso que ocorre no GIT principalmente enquanto escrevemos código em modo root e depois... Leia mais

Um resumo sobre o WSL2

Um resumo sobre o WSL2

O WSL 2 (Windows Subsystem for Linux) representa um grande avanço na integração entre o Windows e o Linux, permitindo... Leia mais