31.01.2025

Como implantar o aplicativo Laravel NGINX no servidor Ubuntu 20.04

Introdução

Nesta publicação, descreverei como implantar um aplicativo Laravel em um servidor no Ubuntu Linux 20.04.

Laravel - é uma estrutura PHP disponível publicamente e foi desenvolvida em 2011. Ele é usado para criar recursos e aplicativos da Web em várias camadas.

Ele suporta prontamente o teste funcional ao criar software, e você pode evitar o uso de outras ferramentas de teste de software. Fácil escalabilidade de projetos na estrutura Laravel.

A estrutura fornece um sistema de autorização simples, mas rápido e acessível, e dá a você direitos de acesso imediato aos seus arquivos. Isso nos permite restringir o acesso a usuários não autorizados. Fornecendo segurança ao aplicativo, o código da estrutura é protegido contra ameaças como injeção de SQL ou falsificação de consulta entre sites.

O Laravel oferece uma abordagem simples e flexível para o desenvolvimento de aplicativos da Web. Ele vem com recursos e ferramentas poderosos que permitem aos desenvolvedores criar e manter aplicativos da Web de forma rápida e fácil. Há também uma opção para que os desenvolvedores avançados usem modelos e módulos para projetar e desenvolver aplicativos com mais eficiência. Além disso, o Laravel suporta muitos bancos de dados populares, como MySQL, Postgres, SQLite e MS SQL, o que o torna mais adequado para o desenvolvimento de aplicativos com diferentes bancos de dados. Ele tem mecanismos integrados para segurança e autenticação e, além disso, tem ferramentas poderosas para monitorar aplicativos. Tudo isso torna o Laravel muito atraente para o desenvolvimento de aplicativos da Web.

O Nginx oferece suporte aos seguintes recursos exclusivos:

Requisitos do sistema

Alterações no sistema

Atualização de pacotes.

sudo apt update

Instalar os pacotes necessários dos módulos PHP.

sudo apt install php-mbstring php-xml php-bcmath

Criação de banco de dados

Antes de mais nada, vamos pesquisar algumas opções exclusivas no banco de dados mysql.

sudo mysql

Criei um novo "banco de dados".

Criou um usuário e me deu todos os direitos para o "DB" criado.

Concedeu todo o acesso ao "DB" para o usuário e, em seguida, deixou o "DB".

Isso concede ao usuário todos os direitos de acesso ao "banco de dados" para administração.

Verifique se podemos entrar no MySQL usando as credenciais do nosso usuário.

Verifique o mesmo acesso ao "DB" criado e, em seguida, saia do "DB".

Criando um novo aplicativo

Eu crio uma tabela no banco de dados.

Inserção de dados na tabela. No meu caso, insiro dados sobre cidades populares.

Verifique se os registros foram adicionados à tabela. Você verá uma janela como esta.

Desenvolvimento de um aplicativo para a estrutura

Depois de criar um aplicativo de lista de cidades. Ele é usado para mostrar as principais configurações da estrutura e o acesso ao "banco de dados".

Criei um novo diretório chamado "citylist", no qual a própria estrutura estará contida.

composer create-project --prefer-dist laravel/laravel "name_of_your_project"

Após a instalação, as seguintes informações serão exibidas na linha de comando.

Agora, abra o diretório do nosso aplicativo e execute o comando artisan para verificar se os componentes estão instalados corretamente.

cd "name_of_your_project"
php artisan

Artisan é a CLI incluída na estrutura. Ele fornece vários comandos que são úteis para o desenvolvimento do aplicativo.

Se tudo for feito conforme as instruções, será mostrado o seguinte.

Configurando a estrutura

A configuração da estrutura está localizada no diretório "config" de seu diretório principal. Quando instalamos a estrutura usando o utilitário "Composer", criamos um arquivo de ambiente.

O arquivo de ambiente registra as configurações do seu ambiente, onde o aplicativo reside, e coloca seu arquivo acima dos outros arquivos de configuração, que estão localizados no diretório "config".

Abra o arquivo ".env".

Nano .env

Embora o arquivo pareça ter muitas configurações, configurarei apenas as que precisamos. Abaixo, escreverei e descreverei quais parâmetros alterarei.

Altere as seguintes chaves no arquivo do aplicativo.

Configuração de um servidor da Web

Mova nossa pasta de aplicativos para o diretório "/var/www", que geralmente é onde todos os aplicativos executados em um servidor da Web são armazenados.

mv ~/name_of_your_project /var/www/name_of_your_project

Deu acesso às pastas em que a estrutura salva os arquivos criados pelo aplicativo.

Vamos prosseguir com a configuração do servidor da Web. Crie um arquivo de configuração de host virtual.

nano /etc/nginx/sites-available/name_of_your_project

Insira as seguintes configurações para o servidor da Web.

server {
listen 80;
server_name IP ADDRESS/DOMAIN_NAME;
root /var/www/YOURPROJECT/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ .php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /.(?!well-known).* {
deny all;}}

 

Agora, execute um novo arquivo com configurações de host virtual e crie um link para seu projeto em "sites-enabled".

sudo ln -s /etc/nginx/sites-available/name_of_your_project /etc/nginx/sites-enabled/

Verifique se há erros de sintaxe nas configurações.

sudo nginx -t

Reiniciar o servidor da Web

systemctl reload nginx

Configuração da página principal da estrutura

Abra o arquivo de rota principal.

nano routes/web.php

Insira os seguintes parâmetros em nosso arquivo.

 

Crie um novo arquivo - uma tela que renderizará a saída do "DB" para o usuário.

nano resources/views/travellist.blade.php

Esse código foi projetado para gerar as informações. Nós as escrevemos no arquivo de configuração.

<?php
use IlluminateSupportFacadesDB;
Route::get('/', function () {
$visited = DB::select('select * from places where visited = ?', [1]);
$togo = DB::select('select * from places where visited = ?', [0]);
return view('yourproject', ['visited' => $visited, 'togo' => $togo ] );});

Salve o arquivo. Abra o navegador e recarregue o aplicativo. A página em si terá o seguinte formato.

Resultados

Nesta publicação, analisamos as seguintes ações:

  1. Criado e pintado o "DB" para o aplicativo.
  2. Configurou o novo aplicativo de estrutura.
  3. Configurou a estrutura e o servidor da Web
  4. Configurou a página principal da estrutura.