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

atualizar repositório

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

instalar 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 nginx

Você deve ver que o serviço Nginx está ‘ habilitado ‘ e o status atual é ‘ ativo (em execução) ‘.

verificar serviço nginx

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

configurar nginx ufw

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:

nginx index

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

instalar servidor mariadb

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 mariadb

O serviço MariaDB está ‘ habilitado ‘ com o status atual ‘ ativo (em execução) ‘.

verificar serviço mariadb

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-installation

Agora 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

instalar php-fpm

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-fpm

Como você pode ver abaixo, o PHP-FPM está ‘ ativo (em execução) ‘ e ‘ habilitado ‘ na inicialização do sistema:

verificar serviço php-fpm

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 php

Na 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/default

Descomente 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 -t

Se você tiver uma sintaxe Nginx adequada, deverá receber uma confirmação como a seguinte:

integrar nginx e php-fpm

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 nginx

Com 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.php

Por 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.

phpinfo

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

php mysql habilitado

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

php apc habilitado

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.html

Agora 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/newsite

Em 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/newsite

Insira 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 -t

Se 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

criar bloco de servidor

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.com

Salve 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:

bloco de servidor nginx

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.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.