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

Construir array de texto a partir de um array.

Construir array de texto a partir de um array.

No dia de hoje(17/08/2022) me deparei com o seguinte problema onde recebiamos um array javascript contendo textos e cujas chaves... Leia mais

Instalar o PGAdmin 4 em distribuições Linux Debian 12

Instalar o PGAdmin 4 em distribuições Linux Debian 12

Recentemente enquanto utilizava o Linux Mint 21 Vera tive uma série de problemas ao instalar o PGAdmin 4 e numa... Leia mais

Função para fazer a tecla ENTER funcionar como a tecla TAB em formulários web.

Função para fazer a tecla ENTER funcionar como a tecla TAB em formulários web.

Segue função em Jquery que utilizei muito em projetos para permitir o comportamento da tecla TAB(pular campos do formulários) utilizando... Leia mais

A função WITH RECURSIVE no PostgreSQL

A função WITH RECURSIVE no PostgreSQL

A função WITH RECURSIVE no PostgreSQL é uma ferramenta poderosa para a execução de consultas recursivas em bancos de dados.... Leia mais