Artigos sobre: Servidores

Como instalar Nginx + PHP + MySQL e criar um Virtual Host no Ubuntu 24

Introdução

A stack Nginx + PHP + MySQL (LEMP) é amplamente utilizada para hospedar aplicações web de forma performática e segura.

Com ela, você consegue servir sites dinâmicos com alta eficiência, sendo uma das configurações mais utilizadas em servidores Linux.

Neste tutorial, você aprenderá como instalar o Nginx, PHP 8.2 e MySQL no Ubuntu 24 e configurar um Virtual Host para seu domínio.



Requisitos

Antes de iniciar, você precisa ter:

  • Acesso ao servidor via SSH.
  • Usuário com privilégios de sudo.
  • Servidor rodando Ubuntu 24 atualizado.
  • Domínio apontando para o IP do servidor (recomendado).



Informações importantes

  • O Nginx será utilizado como servidor web.
  • O PHP será executado via PHP-FPM.
  • O MySQL será utilizado como banco de dados.
  • O Virtual Host permite hospedar múltiplos sites no mesmo servidor.
  • Certifique-se de que a porta 80 (HTTP) e porta 443 (HTTPS) estejam liberadas no firewall.



Como instalar a stack LEMP


1º Passo: Atualizar o sistema

sudo apt update && sudo apt upgrade -y



2º Passo: Instalar o Nginx

sudo apt install -y nginx


Verifique se está rodando:

sudo systemctl status nginx



3º Passo: Instalar o MySQL

sudo apt install -y mysql-server


Execute a configuração inicial:

sudo mysql_secure_installation



4º Passo: Instalar o PHP e extensões

Primeiro vamos adicionar o repositório das versões PHP do Nginx. Execute:

sudo add-apt-repository ppa:ondrej/php


Será necessário fazer algumas confirmações de adição do repositório. Após concluir, execute:

sudo apt update


Após o update, faremos a instalação do PHP e suas extensões:

sudo apt install -y php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-zip php8.2-gd php8.2-mbstring php8.2-curl php8.2-xml php8.2-bcmath php8.2-imagick php8.2-intl php8.2-soap php8.2-redis php8.2-imap


Verifique o PHP-FPM:

sudo systemctl status php8.2-fpm


Você pode também querer instalar o certbot para criar seus certificados SSL gratuitos. Neste caso, execute:

sudo apt install python3-certbot-nginx



Como configurar o Virtual Host

5º Passo: Criar diretório do site

sudo mkdir -p /var/www/seudominio.com.br


Definir permissões:

sudo chown -R www-data:www-data /var/www/seudominio.com.br


⚠️ Lembre-se de alterar seudominio.com.br na criação da pasta para o nome correto de seu domínio.



6º Passo: Criar arquivo de teste

nano /var/www/seudominio.com.br/index.php


Conteúdo:

<?php phpinfo();



7º Passo: Criar configuração do Virtual Host

sudo nano /etc/nginx/sites-available/seudominio.com.br


Adicione:

server {
listen 80;
server_name seudominio.com.br www.seudominio.com.br;

root /var/www/seudominio.com.br;
index index.php index.html;

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}

location ~ /\.ht {
deny all;
}
}


⚠️ Pode ser necessário fazer algumas alterações no modelo base acima conforme o tipo de site que pretende hospedar.



8º Passo: Ativar o site

sudo ln -s /etc/nginx/sites-available/seudominio.com.br /etc/nginx/sites-enabled/


Testar configuração:

sudo nginx -t


Reiniciar Nginx:

sudo systemctl reload nginx


9º Passo: Ativar o SSL do site

Após fazer o apontamento correto de seu domínio para o IP do servidor, você poderá gerar o SSL gratuito usando o comando abaixo:

certbot --nginx -d seudominio.com.br -d www.seudominio.com.br


Será necessário confirmar seu e-mail, aceitar os termos e condições de uso do Lets Encrypt e algumas ações para concluir a emissão.



Ajustes de firewall (se necessário)

Lembre-se de liberar o firewall para permitir o acesso HTTP e HTTPS:

sudo ufw allow 'Nginx Full'



Testar o funcionamento

Acesse no navegador:

http://seudominio.com.br


Se tudo estiver correto, a página do PHP será exibida.



Informações adicionais

  • O diretório padrão dos sites fica em /var/www/
  • Cada domínio deve ter seu próprio Virtual Host.
  • O PHP-FPM pode variar de versão (php8.2, php8.3, etc.).
  • Sempre valide configurações com nginx -t antes de reiniciar.
  • Para produção, recomenda-se configurar HTTPS com SSL.



Ficou com alguma dúvida? Nossa equipe está à disposição nos canais de atendimento para lhe auxiliar.

Atualizado em: 19/03/2026

Este artigo foi útil?

Compartilhe seu feedback

Cancelar

Obrigado!