LEMP Stack · 9 min read · Sep 10, 2025
Como Instalar a Pilha LEMP (Linux, Nginx, PHP e MariaDB) no Ubuntu 24.04

A Pilha LEMP (Linux, Nginx, MySQL/MariaDB e PHP) é um grupo de aplicativos de software livre e de código aberto para hospedagem e desenvolvimento de aplicações web em PHP. A Pilha LEMP pode ser usada para implantar tanto aplicações web estáticas quanto dinâmicas.
Este guia mostrará como instalar a Pilha LEMP (Linux, Nginx, MySQL/MariaDB e PHP) no Ubuntu 24.04 “Noble Numbat”. Também mostraremos como proteger o servidor MariaDB e criar uma configuração de bloco de servidor Nginx para hospedar sites ou nomes de domínio.
Pré-requisitos
Antes de começar, certifique-se de ter o Ubuntu 24.04 “Noble Numbat” com o usuário root ou não-root com privilégios de sudo/administrador. Além disso, certifique-se de que o UFW (Firewall Descomplicado) está em execução e habilitado.
Instalando o servidor web Nginx
Nginx ou engine-x é o servidor web mais popular da internet. Ele se tornou popular porque o Nginx pode lidar com alto tráfego simultaneamente com recursos mínimos do sistema. Neste primeiro passo, você instalará o servidor web Nginx no servidor Ubuntu.
Antes de instalar pacotes, atualize e atualize sua lista de pacotes do Ubuntu com o seguinte comando.
sudo apt update
Instale o servidor web Nginx na sua máquina Ubuntu com o comando abaixo. Digite Y para confirmar a instalação quando solicitado.
sudo apt install nginx
Uma vez que a instalação esteja completa, o serviço Nginx deve estar em execução e habilitado no seu sistema. Verifique o serviço Nginx com o comando abaixo.
sudo systemctl is-enabled nginx
sudo systemctl status nginxVocê deve ver que o serviço Nginx está ‘ habilitado ‘ e o status atual é ‘ ativo (em execução) ‘.

Antes de acessar o Nginx, você precisa abrir as portas HTTP e HTTPS no seu servidor Ubuntu via UFW (Firewall Descomplicado).
Execute o seguinte comando ‘ ufw ‘ para habilitar o perfil ‘ Nginx Full ‘, que permitirá acesso HTTP e HTTPS ao seu servidor Ubuntu.
sudo ufw allow 'Nginx Full'Agora verifique as regras do UFW com o seguinte comando. Certifique-se de que o perfil ‘ Nginx Full ‘ está habilitado com o status ‘ALLOW’.
sudo ufw status
Por fim, visite http://192.168.5.30/ no seu navegador web preferido para acessar sua instalação do Nginx. Se for bem-sucedido, você deve obter a página padrão ‘ index.html ‘ como a seguinte:

Instalando o servidor MariaDB
Após instalar o Nginx, você instalará o servidor MariaDB no Ubuntu. Neste exemplo, você instalará o MariaDB via o repositório do Ubuntu, e então protegerá a instalação do MariaDB via a utilidade ‘ mariadb-secure-installation ‘.
Para instalar o servidor MariaDB no Ubuntu, execute o seguinte comando ‘ apt install ‘. Digite Y e pressione ENTER para prosseguir com o processo.
sudo apt install mariadb-server
Uma vez que a instalação esteja concluída, verifique o serviço MariaDB com o comando abaixo. Isso mostrará o status do serviço MariaDB.
sudo systemctl is-enabled mariadb
sudo systemctl status mariadbO serviço MariaDB está ‘ habilitado ‘ com o status atual ‘ ativo (em execução) ‘.

Uma vez que você tenha instalado o servidor MariaDB, você deve protegê-lo via ‘ mariadb-secure-installation ‘. Isso permite que você configure a senha root do MariaDB, desative a autenticação remota para o usuário root e também remova bancos de dados e privilégios desnecessários da sua instalação do servidor MariaDB.
Execute o comando ‘ mariadb-secure-installation ‘ abaixo para proteger o servidor MariaDB.
sudo mariadb-secure-installationAgora você será questionado sobre as seguintes configurações do servidor MariaDB:
Pressione ENTER quando solicitado pela senha root do MariaDB.
Digite a senha atual para root (pressione ENTER para nenhum):
OK, senha usada com sucesso, prosseguindo...Digite ‘ n ‘ quando perguntado se deseja mudar para a autenticação unix_socket.
Mudar para autenticação unix_socket [Y/n] n
... pulando.Digite Y para configurar a senha root do MariaDB. Em seguida, insira sua nova senha e repita.
Alterar a senha root? [Y/n] Y
Nova senha:
Reinsira a nova senha:
Senha atualizada com sucesso!
Recarregando tabelas de privilégios..
... Sucesso!Digite Y para remover o usuário anônimo padrão da sua instalação do servidor MariaDB.
Remover usuários anônimos? [Y/n] Y
... Sucesso!Digite Y para desativar o login remoto para o usuário root do MariaDB. O usuário root deve sempre se conectar a partir do localhost.
Desabilitar login root remotamente? [Y/n] Y
... Sucesso!Agora digite Y novamente para remover o banco de dados de teste padrão e seus privilégios da sua instalação do servidor MariaDB.
Remover banco de dados de teste e acesso a ele? [Y/n] Y
- Removendo banco de dados de teste...
... Sucesso!
- Removendo privilégios no banco de dados de teste...
... Sucesso!Digite Y para recarregar as tabelas de privilégios e aplicar todas as alterações que você fez até agora.
Recarregar tabelas de privilégios agora? [Y/n] Y
... Sucesso!Quando completo, você verá a seguinte mensagem:
Tudo pronto! Se você completou todos os passos acima, sua instalação do MariaDB
deve agora estar segura.
Obrigado por usar o MariaDB!Instalando PHP-FPM
PHP-FPM (FastCGI Process Manager) é uma alternativa à implementação FastCGI para PHP. É usado principalmente para sites de alto tráfego com o Nginx como servidor web. Nesta seção, você instalará o PHP-FPM com algumas extensões adicionais, como mysqli para o driver MySQL/MariaDB, opcache e APCu para cache.
Instale o PHP-FPM no seu servidor Ubuntu com o seguinte comando. Quando solicitado, digite Y e pressione ENTER para prosseguir.
sudo apt install php-fpm php-mysql php-curl php-gd php-json php-intl php-bcmath php-opcache php-apcu php-mbstring php-fileinfo php-xml php-soap php-tokenizer php-zip
Após a instalação ser concluída, o serviço PHP-FPM deve estar em funcionamento. Verifique o status do serviço PHP-FPM com o seguinte comando.
sudo systemctl is-enabled php8.3-fpm
sudo systemctl status php8.3-fpmComo você pode ver abaixo, o PHP-FPM está ‘ ativo (em execução) ‘ e ‘ habilitado ‘ na inicialização do sistema:

No Ubuntu, o PHP-FPM padrão está sendo executado sob o arquivo sock. Saber o caminho do arquivo sock do PHP-FPM é importante, pois será usado para integração com o servidor web Nginx.
Verifique o caminho do arquivo sock do PHP-FPM com o seguinte comando.
ss -pl | grep phpNa saída a seguir, você pode ver que o arquivo sock do PHP-FPM está localizado em ‘ /run/php/php8.3-fpm.sock ‘.
Integrando Nginx com PHP-FPM
Agora que você instalou o PHP-FPM, é hora de integrá-lo com o servidor web Nginx. Para isso, você deve saber exatamente o caminho do arquivo sock do PHP-FPM e, em seguida, modificar o arquivo de bloco de servidor Nginx padrão.
Abra a configuração do bloco de servidor ‘ /etc/nginx/sites-available/default ‘ usando o seguinte comando do editor nano.
sudo nano /etc/nginx/sites-available/defaultDescomente as seguintes linhas e certifique-se de alterar o caminho do arquivo sock do PHP-FPM para o novo local.
# passar scripts PHP para o servidor FastCGI
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# # Com php-fpm (ou outros sockets unix):
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
# # Com php-cgi (ou outros sockets tcp):
# fastcgi_pass 127.0.0.1:9000;
}Salve o arquivo e saia do editor.
Agora execute o comando ‘ nginx ‘ abaixo para verificar sua sintaxe do Nginx. Você deve executar este comando após fazer alterações na configuração do Nginx.
sudo nginx -tSe você tiver uma sintaxe Nginx adequada, deverá receber uma confirmação como a seguinte:

Em seguida, execute o comando abaixo para reiniciar o serviço Nginx e aplicar sua integração entre Nginx e PHP-FPM.
sudo systemctl restart nginxCom o Nginx reiniciado, você pode verificar sua integração via o arquivo PHPINFO. Execute o comando abaixo para criar o arquivo PHPINFO ‘ info.php ‘ no diretório raiz web padrão ‘ /var/www/html/ ‘.
echo "" > /var/www/html/info.phpPor fim, volte ao seu navegador web e visite http://192.168.5.30/info.php. Se sua integração do Nginx e PHP-FPM for bem-sucedida, você deve obter o seguinte:
Você pode ver abaixo que o PHP 8.3 está em execução com a API do servidor PHP-FPM sob o servidor web Nginx.

Role para baixo na página e você verá a extensão PHP mysqli/mysqlnd também instalada.

Por fim, você também verá o cache via APC habilitado na sua instalação do PHP.

Criando bloco de servidor Nginx (host virtual)
Um bloco de servidor é apenas outro nome para um ‘host virtual’ para um servidor web Nginx. É usado para hospedar vários sites ou nomes de domínio em um único servidor. Nesta seção, você aprenderá como criar um bloco de servidor Nginx.
Antes de criar a configuração do bloco de servidor, execute o comando abaixo para criar um novo diretório raiz web ‘/var/www/newsite/public_html’ e uma página personalizada ‘index.html’.
mkdir -p /var/www/newsite/public_html
echo "Bem-vindo ao newsite.com" > /var/www/newsite/public_html/index.htmlAgora execute o comando abaixo para mudar a propriedade do diretório ‘ /var/www/newsite ‘ para o usuário ‘ www-data ‘. No sistema Ubuntu, o servidor web Nginx está sendo executado como um usuário ‘ www-data ‘.
sudo chown -R www-data:www-data /var/www/newsiteEm seguida, execute o seguinte comando do editor nano para criar uma nova configuração de bloco de servidor ‘/etc/nginx/sites-available/newsite’.
sudo nano /etc/nginx/sites-available/newsiteInsira a configuração abaixo, certifique-se de alterar a opção server_name com seu nome de domínio e o diretório raiz web para o novo caminho, como ‘ /var/www/newsite/public_html ‘.
server {
listen 80;
server_name newsite.com;
root /var/www/newsite/public_html;
index index.html;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location / {
try_files $uri $uri/ =404;
}
}Quando terminar, salve e saia do arquivo.
Agora execute o comando abaixo para ativar a configuração do bloco de servidor ‘ newsite ‘. Com este comando, você criará um novo link simbólico do arquivo ‘ /etc/nginx/sites-available/newsite ‘ para o diretório ‘ /etc/nginx/sites-enabled/ ‘.
sudo ln -s /etc/nginx/sites-available/newsite /etc/nginx/sites-enabled/Após o bloco de servidor ser ativado, execute o comando ‘ nginx ‘ abaixo para verificar sua sintaxe do Nginx.
sudo nginx -tSe não houver erro, você deve obter a saída ‘ … syntax is ok / … test is successful ‘.
Por fim, execute o comando abaixo para reiniciar o servidor web Nginx e aplicar sua nova configuração de bloco de servidor. Com isso, sua configuração de bloco de servidor deve ser acessível a partir da sua máquina local.
sudo systemctl restart nginx
Testando sua configuração de bloco de servidor
Para garantir que sua configuração de bloco de servidor Nginx seja bem-sucedida, você acessará o nome de domínio da sua configuração de bloco de servidor a partir do seu computador local. Se você estiver usando o nome de domínio público, visite o nome de domínio diretamente. Mas para os usuários de domínio local, edite o arquivo ‘hosts’ no seu computador local.
- Para usuários Linux e MacOS, edite o arquivo ‘ /etc/hosts ‘ com privilégios de root/administrativos.
- Para usuários Windows, edite o arquivo ‘ C:\Windows\System32\drivers\etc\hosts ‘ como administrador.
Adicione seu endereço IP do servidor e nome de domínio como o seguinte:
192.168.5.30 newsite.comSalve o arquivo e saia.
Agora abra seu navegador web e visite http://newsite.com/. se sua configuração de bloco de servidor Nginx for bem-sucedida, você deve obter a página personalizada ‘index.html’ que você criou como a seguinte:

Conclusão
Parabéns! Você agora instalou a Pilha LEMP (Linux, Nginx, MySQL/MariaDB e PHP) no Ubuntu 24.04 “Noble Numbat”. Você também protegeu a instalação do servidor MariaDB e criou um bloco de servidor Nginx para hospedar vários sites.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.