Blog

Tutoriais, guias e novidades do produto.

Programadores

O que são as stacks LAMP e LEMP?

3 novembro 2026 6 min de leitura
Partilhar esta publicação

LAMP e LEMP dão nome aos quatro programas que servem um site típico: Linux, um servidor web, uma base de dados e PHP. O A de LAMP vem de Apache e o E de LEMP vem de Nginx (pronuncia-se «engine-x», daí o E). Nas duas stacks, a base de dados é MySQL ou MariaDB e a linguagem de programação é PHP.

Aplicações PHP como o WordPress, o WooCommerce e o Joomla correm nesta stack. O WordPress.org recomenda o Apache ou o Nginx como servidor web, por isso ambos são uma base sólida. A sua escolha não decide se a aplicação funciona. Muda a forma como escreve as definições.

Como funciona a stack?

CamadaLAMPLEMPFunção
Sistema operativoLinuxLinuxA base sobre a qual tudo corre
Servidor webApacheNginxResponde aos pedidos dos navegadores
Base de dadosMySQL ou MariaDBMySQL ou MariaDBGuarda publicações, utilizadores e encomendas
LinguagemPHPPHP, através do PHP-FPMConstrói a página

Um pedido percorre a stack desta forma:

  1. O navegador envia um pedido para o seu domínio. Chega à porta 80 ou 443 do seu servidor.
  2. O servidor web recebe o pedido. Se for de uma imagem ou de um ficheiro CSS, serve ele próprio o ficheiro.
  3. Se o pedido for de um ficheiro PHP, o servidor web entrega-o ao PHP e o PHP executa o código.
  4. O PHP consulta a base de dados quando é preciso e constrói a página. O servidor web devolve a página ao navegador.

Se uma página não abrir, verifique as camadas por ordem: systemctl status nginx, systemctl status phpX.Y-fpm e systemctl status mariadb. X.Y representa a sua versão do PHP (8.3 no Ubuntu 24.04) e, na LAMP, usa-se apache2 em vez de nginx. O problema começa naquele que não estiver em execução.

Qual é a diferença entre LAMP e LEMP?

  • O Apache lê ficheiros .htaccess e o Nginx não. No Nginx, as regras vão na configuração do servidor.
  • O Nginx não executa PHP dentro de si. Passa os pedidos a um serviço separado chamado PHP-FPM. O Apache pode executar o PHP dentro de si ou através do PHP-FPM.
  • As pastas de configuração são diferentes. No Ubuntu, o Apache usa /etc/apache2 e o Nginx usa /etc/nginx.
  • A utilização de memória depende mais do número de workers do PHP-FPM e das definições da base de dados do que da escolha do servidor web.
  • Nenhum é claramente superior. Ambos são muito usados, por isso decidem o guia que segue e os seus hábitos.

MySQL ou MariaDB?

O MariaDB é uma base de dados de código aberto que se separou do MySQL, e os comandos e clientes de ambos são em grande parte compatíveis. A página oficial de requisitos do WordPress aceita ambos, por isso consulte lá as versões mínimas atuais. No Ubuntu, o pacote mariadb-server instala-se com um comando. Segundo a documentação do MariaDB, a conta root usa por predefinição a autenticação unix_socket desde a versão 10.4. No servidor, basta executar sudo mariadb. Não é preciso palavra-passe de root.

Montar uma LEMP no Ubuntu

Estes passos são para Ubuntu e Debian. Primeiro ligue-se ao servidor por SSH. Os exemplos usam example.com como nome de domínio, por isso substitua-o pelo seu.

  1. Atualize a lista de pacotes: sudo apt update
  2. Instale os pacotes: sudo apt install nginx mariadb-server php-fpm php-mysql. As versões instaladas são as do repositório de pacotes.
  3. Reforce a segurança da base de dados: sudo mariadb-secure-installation. Responda que sim a remover os utilizadores anónimos, remover a base de dados de teste e proibir o início de sessão remoto como root.
  4. Crie a pasta do site: sudo mkdir -p /var/www/example
  5. Abra um ficheiro com sudo nano /etc/nginx/sites-available/example e cole esta linha: server { listen 80; server_name example.com www.example.com; root /var/www/example; index index.php index.html; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/phpX.Y-fpm.sock; } }
  6. O comando ls /run/php/ mostra o nome real do socket. Escreva-o no lugar de phpX.Y-fpm.sock.
  7. Ative o site: sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/
  8. Teste e aplique a configuração: sudo nginx -t e depois sudo systemctl reload nginx
  9. Se usar o ufw, abra as portas 80 e 443: sudo ufw allow 80/tcp e sudo ufw allow 443/tcp. Certifique-se de que a porta SSH (22) está aberta.

Para testar se o PHP funciona, escreva um ficheiro de teste:

echo '<?php phpinfo();' | sudo tee /var/www/example/info.php

Se o domínio ainda não aponta para o servidor, teste a partir de dentro do servidor com curl -H 'Host: example.com' http://127.0.0.1/info.php. Assim que vir que funciona, apague o ficheiro: sudo rm /var/www/example/info.php. Essa página mostra a toda a gente os dados do seu servidor.

Uma base de dados para a sua aplicação

Abra a shell da base de dados com sudo mariadb e crie uma base de dados e um utilizador separados para cada aplicação. Escolha você uma palavra-passe forte:

CREATE DATABASE exampledb CHARACTER SET utf8mb4;

CREATE USER 'exampleuser'@'localhost' IDENTIFIED BY 'a-strong-password';

GRANT ALL ON exampledb.* TO 'exampleuser'@'localhost';

Estes três valores (base de dados, utilizador, palavra-passe) introduzem-se no ecrã de configuração do WordPress. Para que os links permanentes do WordPress funcionem, substitua =404 na linha do Nginx por /index.php?$args.

O que muda na LAMP?

Para a stack Apache, os pacotes instalam-se assim:

sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql

Define o site em /etc/apache2/sites-available e ativa-o com sudo a2ensite example. Para os links permanentes, execute sudo a2enmod rewrite e reinicie o Apache com sudo systemctl restart apache2. Para que os ficheiros .htaccess tenham efeito, tem de definir AllowOverride All para a pasta do site. Também pode executar o Apache com o PHP-FPM, o que combina com o modelo orientado a eventos event. Os passos da base de dados são os mesmos da LEMP.

Depois da instalação

  • Adicione um certificado HTTPS. O Let's Encrypt é gratuito e o Certbot funciona com o Nginx e com o Apache.
  • Defina o proprietário das pastas em que o servidor web precisa de escrever. No Ubuntu e no Debian, o servidor web corre como o utilizador www-data: sudo chown -R www-data:www-data /var/www/example.
  • Instale as atualizações com regularidade com sudo apt update && sudo apt upgrade. Depois da instalação, as atualizações do sistema operativo e do software são da sua responsabilidade.
  • Faça a cópia de segurança da base de dados em separado com o mariadb-dump. A cópia de segurança diária do servidor está incluída no preço, mas deve guardar você mesmo uma cópia extra dos dados importantes.

Se quiser a stack pronta a usar, encomende com a opção LAMP ou LEMP da Seturack e ela instala-se sozinha. Se só precisa do WordPress, a opção VPS WordPress basta: a configuração demora cerca de 4 a 5 minutos, e o endereço e a palavra-passe aparecem no painel.

Pronto a usar na Seturack: LAMP, LEMP.

Comentários0

Ainda não existem comentários

Seja a primeira pessoa a partilhar a sua opinião.

Participar na discussão

Inicie sessão ou crie uma conta para deixar um comentário.

Não perca nenhuma publicação

Receba os nossos tutoriais, guias e novidades de produtos mais recentes na sua caixa de entrada.

Subscreveu o nosso boletim informativo.