← voltar

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.  

Comentários (0)

Nenhum comentário ainda. Seja o primeiro.

Continue lendo

Como instalar o RabbitVCS no ubuntu 18.04

Como instalar o RabbitVCS no ubuntu 18.04

Caso você sendo usuário Linux e precise instalar um gerenciador de SVN temos como alternativa o RABBITVCS. São apenas dois comandos no terminal do ubuntu que seguem abaixo: sudo add-apt-repository ppa:rabbitvcs/ppa sudo…

Artigo, Linux, Tutorial, Ubuntu
Design Pattern Facade em PHP : Exemplo prático

Design Pattern Facade em PHP : Exemplo prático

O Design Pattern Facade é uma solução elegante para simplificar a interface de um subsistema complexo, tornando-o mais fácil de usar. Ele atua como uma fachada que esconde a complexidade de classes e interações…

Artigo, Iniciantes, Intermediários, php, Postgres, Tutorial