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 nginx3º Passo: Instalar o MySQL
sudo apt install -y mysql-server
Execute a configuração inicial:
sudo mysql_secure_installation4º 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 updateApó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 nginx9º 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 -tantes 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
Obrigado!
