18 min de leitura · Guia técnico
LAMP vs LEMP: em VPS com 1 GB de RAM, o LEMP geralmente roda melhor porque o Nginx com PHP-FPM mantém consumo de memória mais baixo e mais estável do que o Apache em configurações tradicionais. O LAMP ainda pode ser a melhor escolha quando a aplicação depende de .htaccess, módulos do Apache ou compatibilidade com painéis como cPanel.
LAMP vs LEMP: qual stack escolher para VPS com pouca RAM
A escolha entre LAMP e LEMP em um VPS com 1 GB ou 2 GB de RAM pode determinar se o servidor responde com agilidade ou trava sob carga. O Apache, componente central do LAMP, usa o módulo mpm_prefork, mpm_worker ou event para gerenciar conexões, o que implica alocar memória para cada processo ou thread ativo em maior ou menor grau conforme o MPM usado. O Nginx, por sua vez, processa milhares de conexões simultâneas com um número fixo e pequeno de processos worker, mantendo o consumo de RAM estável mesmo quando o tráfego aumenta.
Em termos práticos: um servidor Apache com 20 conexões simultâneas pode consumir entre 80 MB e 200 MB apenas com os processos do servidor web, dependendo dos módulos carregados e do MPM configurado. O Nginx nas mesmas condições costuma ficar abaixo de 30 MB. Essa diferença é decisiva quando o VPS tem pouca memória disponível para dividir entre banco de dados, PHP-FPM e a aplicação em si.
Para projetos novos em VPS com até 2 GB de RAM, o LEMP é geralmente a escolha mais eficiente. O LAMP continua sendo a melhor opção quando a aplicação depende de .htaccess por diretório, módulos específicos do Apache como mod_rewrite nativo, ou quando o ambiente já usa cPanel, que tem o Apache como padrão.
Pré-requisitos
- Acesso root ou sudo ao servidor via SSH
- Debian 12 (Bookworm) ou Ubuntu 22.04 LTS como sistema operacional
- Mínimo de 512 MB de RAM (recomendado 1 GB para testes comparativos)
- Conexão com a internet para baixar pacotes
- Conhecimento básico de linha de comando Linux
- Porta 80 e 443 liberadas no firewall
Instalando e configurando a stack LAMP no Debian 12
A instalação do LAMP em Debian 12 parte dos repositórios oficiais. O Apache 2.4 é o servidor web padrão, o MariaDB 10.11 substitui o MySQL nos repositórios Debian e o PHP 8.2 é a versão disponível sem repositórios externos.
- Atualize o sistema e instale o Apache:
apt update && apt upgrade -y
apt install apache2 -y
systemctl enable apache2
systemctl start apache2
Output esperado:
Synchronizing state of apache2.service...
apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled)
Active: active (running)
- Instale o MariaDB e execute a configuração segura:
apt install mariadb-server -y
systemctl enable mariadb
mysql_secure_installation
Durante o mysql_secure_installation, responda Y para remover usuários anônimos, desabilitar login remoto do root e remover o banco de testes.
- Instale o PHP e os módulos necessários para integração com Apache:
apt install php libapache2-mod-php php-mysql php-cli php-curl php-mbstring php-xml -y
- Verifique a versão do PHP e reinicie o Apache:
php -v
systemctl restart apache2
Output esperado:
PHP 8.2.x (cli) (built: ...)
Copyright (c) The PHP Group
- Crie um arquivo de teste para confirmar que o PHP está funcionando com o Apache:
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
Acesse http://SEU_IP/info.php no navegador. Se a página de informações do PHP aparecer, o LAMP está operacional.
Atenção: remova o arquivo info.php após o teste, pois ele expõe informações sensíveis do servidor.
rm /var/www/html/info.php
Instalando e configurando a stack LEMP no Debian 12
A instalação do LEMP segue uma lógica diferente: o Nginx não carrega o PHP nativamente como módulo, mas se comunica com o PHP-FPM via socket Unix. Essa separação é justamente o que torna o LEMP mais eficiente em memória — o Nginx serve arquivos estáticos diretamente sem acionar o PHP, e o PHP-FPM só é chamado quando necessário.
- Instale o Nginx:
apt update && apt upgrade -y
apt install nginx -y
systemctl enable nginx
systemctl start nginx
- Instale o MariaDB (mesmo procedimento do LAMP):
apt install mariadb-server -y
systemctl enable mariadb
mysql_secure_installation
- Instale o PHP-FPM e os módulos necessários:
apt install php-fpm php-mysql php-cli php-curl php-mbstring php-xml -y
- Verifique o socket do PHP-FPM criado automaticamente:
ls /run/php/
php8.2-fpm.sock
- Configure o bloco server do Nginx para usar PHP-FPM. Edite o arquivo de configuração padrão:
nano /etc/nginx/sites-available/default
Substitua o conteúdo pelo bloco abaixo:
server {
listen 80;
server_name _;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
- Teste a configuração e reinicie o Nginx:
nginx -t
systemctl restart nginx
Output esperado:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
- Crie e teste o arquivo PHP:
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
Acesse http://SEU_IP/info.php. Após confirmar o funcionamento, remova o arquivo:
rm /var/www/html/info.php
Para aprofundar a configuração do Nginx com PHP-FPM, consulte o artigo Passo a passo para configurar Nginx com PHP-FPM no VPS Linux na base de conhecimento da AviraHost.
Comparativo de consumo de memória: LAMP vs LEMP em VPS com 1 GB
Para medir o consumo real de cada stack, use os comandos abaixo após instalar e iniciar os serviços. O objetivo é comparar o uso de memória em estado ocioso e sob carga leve.
Verifique o consumo de memória dos processos principais:
ps aux --sort=-%mem | head -20
Para uma visão geral da memória disponível:
free -h
Output esperado (exemplo com LEMP em idle):
total used free shared buff/cache available
Mem: 981Mi 312Mi 201Mi 12Mi 467Mi 556Mi
Para verificar o consumo específico do Apache no LAMP:
systemctl status apache2
ps aux | grep apache2 | awk '{sum += $6} END {print sum/1024 " MB"}'
Para verificar o consumo do Nginx no LEMP:
systemctl status nginx
ps aux | grep nginx | awk '{sum += $6} END {print sum/1024 " MB"}'
Em um VPS com 1 GB de RAM rodando apenas o servidor web em idle, o Nginx tipicamente ocupa entre 5 MB e 15 MB, enquanto o Apache com mpm_prefork pode ocupar entre 30 MB e 80 MB dependendo do número de processos pré-iniciados configurados em StartServers e MinSpareServers. Se o Apache estiver com Worker MPM ou Event MPM, o consumo tende a ser menor do que no prefork, mas ainda assim o Nginx costuma ser mais eficiente em cenários de baixa RAM.
- LEMP (Nginx + PHP-FPM + MariaDB): consumo total em idle geralmente entre 200 MB e 350 MB em um VPS de 1 GB
- LAMP (Apache + mod_php + MariaDB): consumo total em idle geralmente entre 300 MB e 500 MB no mesmo ambiente
- Sob carga de 50 requisições simultâneas: o Nginx mantém consumo estável; o Apache pode escalar o número de processos e pressionar o limite de RAM disponível
Ajustes de otimização para cada stack em VPS com pouca RAM
Independentemente da stack escolhida, ajustes finos nos arquivos de configuração são essenciais para evitar que o servidor fique sem memória. O tuning de processos é o ponto mais crítico em ambientes com recursos limitados. Em 2026, também é comum complementar qualquer uma das stacks com Redis para Object Cache, Varnish como cache HTTP e um swap file pequeno para reduzir o risco de indisponibilidade em picos de memória, embora swap não substitua RAM real. Para validar se os ajustes melhoraram o resource usage, vale fazer um benchmarking simples com ferramentas como ab ou wrk e comparar métricas como tempo de resposta médio e TTFB.
Otimizando o Apache para VPS com 1 GB de RAM
No LAMP, o módulo MPM controla quantos processos o Apache mantém ativos. Para reduzir o consumo, edite /etc/apache2/mods-available/mpm_prefork.conf:
nano /etc/apache2/mods-available/mpm_prefork.conf
<IfModule mpm_prefork_module>
StartServers 2
MinSpareServers 2
MaxSpareServers 4
MaxRequestWorkers 25
MaxConnectionsPerChild 500
</IfModule>
Após salvar, reinicie o Apache:
systemctl restart apache2
Esses valores reduzem o número máximo de processos simultâneos de 150 (padrão) para 25, o que é adequado para sites com tráfego moderado em VPS com 1 GB.
Se a aplicação não depender de mod_php, uma alternativa é usar Event MPM ou Worker MPM com PHP-FPM para reduzir o consumo do Apache. Essa abordagem aproxima o comportamento do Apache de um modelo mais eficiente, embora ainda mantenha a complexidade e as particularidades do ecossistema Apache.
Otimizando o Nginx e PHP-FPM para VPS com pouca RAM
No LEMP, o PHP-FPM também precisa de ajuste. Edite o pool padrão em /etc/php/8.2/fpm/pool.d/www.conf:
nano /etc/php/8.2/fpm/pool.d/www.conf
Localize e ajuste os parâmetros de gerenciamento de processos:
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 500
Reinicie o PHP-FPM após a alteração:
systemctl restart php8.2-fpm
Para o Nginx, ajuste o número de worker processes em /etc/nginx/nginx.conf:
worker_processes auto;
worker_connections 1024;
O valor auto define automaticamente o número de workers igual ao número de CPUs disponíveis, evitando desperdício de memória com processos ociosos.
Em cenários híbridos, também é possível usar o Nginx como Reverse Proxy na frente do Apache para servir arquivos estáticos e repassar requisições dinâmicas ao backend. Essa arquitetura pode melhorar a capacidade de conexão simultânea, mas adiciona complexidade e não costuma ser a primeira escolha para quem busca simplicidade em um VPS muito pequeno. Em projetos WordPress ou e-commerce, adicionar Redis para Object Cache costuma trazer ganho mais perceptível do que apenas trocar o servidor web, e soluções como LiteSpeed podem competir bem em desempenho, mas fogem do comparativo direto entre LAMP e LEMP aqui.
Para dicas adicionais de otimização de servidores Linux, veja o artigo Dicas de Otimização de Servidores Linux.
Quando usar LAMP e quando usar LEMP
A decisão entre as duas stacks não é apenas técnica — envolve o ecossistema da aplicação, a familiaridade da equipe e os requisitos específicos do projeto.
Use LAMP quando:
- A aplicação usa
.htaccessextensivamente para reescrita de URLs por diretório - O ambiente usa cPanel ou Plesk, onde o Apache é o servidor web padrão
- Módulos específicos do Apache como
mod_security,mod_evasiveoumod_pagespeedsão necessários - A equipe tem mais experiência com Apache e não há tempo para reconfigurar o ambiente
- O VPS tem 4 GB ou mais de RAM e o consumo extra do Apache não é um problema
Use LEMP quando:
- O VPS tem 1 GB ou 2 GB de RAM e a eficiência de memória é prioridade
- O site serve muitos arquivos estáticos (imagens, CSS, JS) que o Nginx entrega diretamente sem acionar o PHP
- A aplicação precisa lidar com alto número de conexões simultâneas
- O projeto é novo e não há dependências legadas do Apache
- Você quer usar o Nginx como proxy reverso para outras aplicações Node.js ou Python
Não use LEMP quando:
- A aplicação depende de
.htaccesspor diretório sem possibilidade de migrar as regras para blocoslocationdo Nginx - O provedor de hospedagem não permite instalar ou configurar o Nginx manualmente
Problemas comuns e como resolver
Sintoma: página em branco ou erro 502 Bad Gateway no LEMP
Causa: O Nginx não consegue se comunicar com o PHP-FPM porque o socket Unix não existe ou o serviço PHP-FPM não está rodando.
Solução: Verifique se o PHP-FPM está ativo com systemctl status php8.2-fpm. Confirme o caminho do socket com ls /run/php/ e certifique-se de que o caminho no bloco fastcgi_pass do Nginx corresponde exatamente ao socket existente. Reinicie ambos os serviços: systemctl restart php8.2-fpm nginx.
Sintoma: Apache consumindo toda a RAM disponível no VPS
Causa: O Apache está usando o MPM prefork com valores padrão altos de MaxRequestWorkers (geralmente 150), criando processos demais para a memória disponível.
Solução: Reduza o MaxRequestWorkers para um valor compatível com a RAM disponível. Uma regra prática: divida a RAM disponível para o Apache (em MB) pelo tamanho médio de um processo Apache (verifique com ps aux | grep apache2). Para 1 GB de RAM com MariaDB rodando, um valor entre 20 e 30 é razoável.
Sintoma: erro "Permission denied" ao acessar arquivos via Nginx
Causa: O usuário do processo Nginx (www-data no Debian) não tem permissão de leitura nos arquivos do site.
Solução: Verifique as permissões com ls -la /var/www/html/. Corrija com chown -R www-data:www-data /var/www/html/ e chmod -R 755 /var/www/html/. Verifique também os logs de erro do Nginx em /var/log/nginx/error.log para confirmar a causa exata.
Sintoma: MariaDB reiniciando automaticamente por falta de memória
Causa: O innodb_buffer_pool_size padrão do MariaDB pode ser alto demais para VPS com pouca RAM, causando uso excessivo de memória e reinicializações pelo OOM killer do Linux.
Solução: Edite /etc/mysql/mariadb.conf.d/50-server.cnf e adicione ou ajuste: innodb_buffer_pool_size = 64M para VPS com 1 GB. Se o problema ocorrer em picos curtos, crie também um swap file pequeno como proteção adicional e monitore com free -h. Reinicie o MariaDB com systemctl restart mariadb.
Perguntas frequentes sobre LAMP vs LEMP
LAMP ou LEMP: qual consome menos RAM em um VPS com 1 GB?
O LEMP consome menos RAM em VPS com 1 GB porque o Nginx usa um modelo de processos assíncrono baseado em eventos, enquanto o Apache cria um processo ou thread por conexão. Em servidores com memória limitada, o Nginx mantém consumo estável mesmo sob carga moderada, tornando o LEMP a escolha mais eficiente para esse cenário.
Posso trocar Apache por Nginx sem reinstalar o PHP?
Sim, é possível manter o PHP-FPM instalado e apenas substituir o Apache pelo Nginx como servidor web. O PHP-FPM se comunica com o Nginx via socket Unix ou TCP, então basta parar o Apache, instalar o Nginx e ajustar os blocos server do Nginx para apontar para o socket do PHP-FPM. Nenhuma reinstalação do PHP é necessária.
O LAMP ainda é relevante em 2026 ou devo migrar para LEMP?
O LAMP ainda é relevante para aplicações que dependem de módulos específicos do Apache como mod_rewrite com .htaccess, ou para ambientes cPanel onde o Apache é o padrão. Para novos projetos em VPS com pouca RAM ou alto tráfego, o LEMP é geralmente mais eficiente. A escolha depende do ecossistema da aplicação e da familiaridade da equipe.
MySQL ou MariaDB: qual usar no LEMP em Debian 12?
No Debian 12, o MariaDB 10.11 é o banco de dados padrão nos repositórios oficiais e é totalmente compatível com aplicações que usam MySQL. O MariaDB tende a ter melhor desempenho em consultas de leitura e consome memória de forma similar ao MySQL 8.0 com configurações padrão. Para a maioria dos projetos web, o MariaDB é uma escolha sólida no LEMP.
Como verificar qual stack está consumindo mais memória no servidor?
Execute o comando ps aux --sort=-%mem | head -20 para listar os processos que mais consomem RAM. Para ver o consumo total de cada serviço, use systemctl status apache2 ou systemctl status nginx combinado com free -h para monitorar a memória disponível. O comando smem -r -k oferece uma visão mais precisa do consumo real por processo.
Conclusão
- Para VPS com 1 GB de RAM: instale o LEMP com Nginx, PHP-FPM e MariaDB, ajuste o
pm.max_childrendo PHP-FPM para no máximo 10 e oinnodb_buffer_pool_sizedo MariaDB para 64 MB - Para migrar do LAMP para LEMP: mantenha o PHP-FPM instalado, pare o Apache, instale o Nginx e configure os blocos
serverapontando para o socket do PHP-FPM — sem reinstalar o PHP - Para ambientes com cPanel ou dependência de .htaccess: mantenha o LAMP e otimize o Apache reduzindo o
MaxRequestWorkerspara um valor compatível com a RAM disponível
Leia também
- Configurar Servidor LAMP no Ubuntu/Debian 2026: Passo a Passo
- Entenda o Deploy de Node.js no Debian 12 com PM2
- Solucionar lentidão no MySQL 8.0 antes que derrube sua aplicação
Precisa de ajuda com LAMP ou LEMP no seu VPS?
Configurar e otimizar stacks web em VPS com recursos limitados exige atenção aos detalhes de cada componente. A AviraHost oferece planos de VPS Linux com suporte técnico para ajudar na configuração inicial e no tuning do ambiente.