O Que É uma Stack LAMP? Guia de Arquitetura, Componentes e Implantação em Produção
Uma stack LAMP é um conjunto de software open-source comprovado, composto por Linux (sistema operativo), Apache (servidor web), MySQL (base de dados relacional) e PHP (linguagem de scripting do lado do servidor). Em conjunto, estas quatro camadas formam um ambiente completo e autossuficiente para construir, implementar e servir aplicações web dinâmicas. O acrónimo descreve tanto a stack tecnológica como o pipeline de processamento de pedidos sequencial em que cada camada participa.
Para qualquer programador ou administrador de sistemas que avalie infraestrutura de alojamento web, LAMP continua a ser a referência dominante: sustenta mais de 30% de todas as implementações do lado do servidor a nível global, alimenta plataformas como WordPress, Drupal e Magento, e é o ambiente de destino padrão para milhares de frameworks e bibliotecas PHP. Compreender os seus componentes internos — não apenas os seus componentes — é o que separa uma implementação funcional de um sistema de produção robusto e de alto desempenho.
As Quatro Camadas de uma Stack LAMP: Análise Técnica
Linux: A Camada de Fundação
Linux é o kernel do sistema operativo e o ambiente de espaço de utilizador no qual todos os outros componentes LAMP são executados. O seu papel não é passivo: o Linux gere o escalonamento de processos, a alocação de memória, o I/O do sistema de ficheiros, o comportamento da stack de rede e as políticas de segurança que afetam diretamente todas as outras camadas.
Considerações técnicas fundamentais para implementações LAMP:
- A escolha da distribuição é importante. Ubuntu LTS e Debian são preferidos pelos seus longos ciclos de suporte e extensos repositórios de pacotes. RHEL/AlmaLinux/Rocky Linux são preferidos em ambientes empresariais que requerem a aplicação de SELinux.
- O ajuste do kernel — especificamente `vm.swappiness`, `net.core.somaxconn` e `fs.file-max` — tem um impacto mensurável na capacidade do Apache de lidar com ligações simultâneas sob carga.
- O reforço de segurança ao nível do SO (desativar serviços não utilizados, configurar `iptables` ou `nftables`, ativar `fail2ban`) é um pré-requisito, não uma reflexão posterior, antes de expor qualquer stack web à internet.
- A seleção do sistema de ficheiros afeta o desempenho da base de dados. XFS e ext4 com opções de montagem `noatime` reduzem escritas desnecessárias em disco, o que é crítico quando o MySQL realiza operações de I/O pequenas e frequentes.
Ao executar LAMP num ambiente de Alojamento VPS, mantém acesso root completo para configurar todos estes parâmetros — algo que os ambientes partilhados fundamentalmente não conseguem proporcionar.
Apache: A Camada do Servidor Web
Apache HTTP Server (httpd) é o motor de processamento de pedidos. Escuta nas portas TCP 80 e 443, analisa os pedidos HTTP/HTTPS recebidos e serve ficheiros estáticos diretamente do disco ou delega pedidos dinâmicos ao interpretador PHP.
Detalhes arquiteturais críticos que a maioria dos guias omite:
- A seleção do MPM (Multi-Processing Module) é uma das decisões mais consequentes numa implementação Apache. As três opções — `prefork`, `worker` e `event` — têm modelos de concorrência fundamentalmente diferentes:
- `prefork`: Um processo por ligação. Compatível com `mod_php` mas intensivo em memória. Evitar em servidores com alta concorrência.
- `worker`: Multi-threaded. Mais eficiente, mas requer extensões PHP thread-safe.
- `event`: O padrão moderno. Gere ligações keep-alive numa thread dedicada, libertando threads de trabalho para pedidos ativos. O melhor para implementações de alto tráfego.
- `mod_php` vs. PHP-FPM: Executar PHP como módulo Apache (`mod_php`) é mais simples, mas acopla o ciclo de vida do processo PHP ao do Apache. Usar PHP-FPM (FastCGI Process Manager) via `mod_proxy_fcgi` desacopla-os, permitindo ajuste independente do pool de processos, isolamento de versão PHP por virtualhost e eficiência de memória significativamente melhor.
- Ficheiros `.htaccess` são convenientes mas dispendiosos: o Apache relê-os em cada pedido para diretórios que permitem substituições. Em produção, consolide as regras em blocos `<Directory>` na configuração principal e defina `AllowOverride None` sempre que possível.
- O alojamento virtual permite que uma única instância Apache sirva dezenas de domínios distintos, cada um com raízes de documento isoladas, certificados SSL e configurações de registo.
MySQL: A Camada de Dados
MySQL é um sistema de gestão de bases de dados relacionais (RDBMS) que armazena, indexa e recupera dados de aplicações estruturados usando SQL. Num contexto LAMP, os scripts PHP ligam-se ao MySQL via extensões PDO ou MySQLi para executar consultas, e o MySQL devolve conjuntos de resultados que o PHP formata em HTML ou JSON.
Conhecimento crítico de MySQL para produção:
- Seleção do motor de armazenamento: InnoDB é a escolha padrão e correta para praticamente todas as cargas de trabalho LAMP. Fornece transações conformes com ACID, bloqueio ao nível da linha e restrições de chave estrangeira. MyISAM não tem transações e usa bloqueio ao nível da tabela — evite-o para novas tabelas.
- `innodb_buffer_pool_size` é o parâmetro de configuração MySQL mais importante. Deve ser definido para 70–80% da RAM disponível num servidor de base de dados dedicado. Subdimensioná-lo força o MySQL a ler do disco em vez da memória, comprometendo o desempenho das consultas.
- MariaDB é um substituto totalmente compatível para MySQL, mantido pelos programadores originais do MySQL após a aquisição pela Oracle. Oferece melhorias de desempenho em cargas de trabalho específicas (particularmente joins complexos e replicação) e é a implementação MySQL padrão em muitas distribuições Linux.
- Pool de ligações: As ligações persistentes do PHP (`PDO::ATTR_PERSISTENT`) ou um pooler externo como ProxySQL reduzem a sobrecarga de estabelecer uma nova ligação TCP e handshake de autenticação em cada pedido PHP.
- Estratégia de indexação: Índices em falta em colunas frequentemente consultadas (especialmente cláusulas `WHERE`, `JOIN` e `ORDER BY`) são a causa mais comum de degradação de desempenho em aplicações LAMP. Use `EXPLAIN` para auditar planos de execução de consultas.
PHP: A Camada de Lógica de Aplicação
PHP (PHP: Hypertext Preprocessor) é a linguagem de scripting do lado do servidor que gera conteúdo dinâmico. Recebe controlo do Apache (via `mod_php` ou PHP-FPM), executa a lógica da aplicação, consulta o MySQL e devolve HTML, JSON ou outra saída ao Apache para entrega ao cliente.
Nuances técnicas que vale a pena conhecer:
- A versão PHP é criticamente importante. PHP 7.4 atingiu o fim de vida em novembro de 2022. PHP 8.0 e 8.1 também estão EOL. Os sistemas de produção devem executar PHP 8.2 ou 8.3, que incluem compilação JIT, argumentos nomeados, fibers e melhorias de desempenho significativas em relação ao PHP 7.x.
- OPcache é uma cache de bytecode integrada no PHP. Quando ativada, compila scripts PHP para bytecode na primeira execução e armazena o resultado em memória partilhada, eliminando a recompilação em pedidos subsequentes. Ativar OPcache com definições adequadas de `opcache.memory_consumption` e `opcache.max_accelerated_files` pode reduzir o tempo de execução PHP em 30–70%.
- Configuração do pool PHP-FPM: A diretiva `pm` controla como os processos de trabalho são geridos. `pm = dynamic` é adequado para a maioria das cargas de trabalho; `pm = ondemand` conserva memória em servidores de baixo tráfego; `pm = static` fornece alocação de recursos previsível para aplicações de alto tráfego.
- Ecossistema de frameworks: Laravel, Symfony, CodeIgniter e Slim são os frameworks PHP dominantes. Laravel em particular tornou-se o padrão de facto para o desenvolvimento de novas aplicações PHP, oferecendo um ORM (Eloquent), sistema de filas e ferramentas CLI (Artisan) que aceleram significativamente o desenvolvimento.
- O “P” é flexível: Embora PHP seja o padrão, a última letra do acrónimo LAMP pode representar Perl (comum em aplicações CGI legadas e ferramentas de bioinformática) ou Python (via `mod_wsgi` ou um proxy compatível com WSGI), embora as stacks com uso intensivo de Python utilizem mais comummente LEMP (Nginx) ou servidores WSGI dedicados.
Como a Stack LAMP Processa um Pedido: O Pipeline Completo
Compreender o ciclo de vida do pedido é essencial para diagnosticar estrangulamentos de desempenho e vulnerabilidades de segurança.
- Resolução DNS: O cliente resolve o nome de domínio para o endereço IP do servidor. O TTL e a cache do resolver afetam a latência percebida nesta fase.
- Handshake TCP + Negociação TLS: Para HTTPS, ocorre um handshake TLS antes de qualquer dado HTTP ser trocado. A validação do certificado, a negociação do conjunto de cifras e a retoma de sessão acontecem aqui.
- Apache Recebe o Pedido HTTP: O MPM `event` do Apache atribui o pedido a uma thread de trabalho. O Apache analisa os cabeçalhos do pedido, aplica regras `mod_rewrite`, verifica `.htaccess` (se ativado) e determina se deve servir um ficheiro estático ou invocar PHP.
- Execução PHP: Para pedidos dinâmicos, o Apache passa o pedido ao PHP-FPM via FastCGI. O PHP-FPM seleciona um worker disponível do seu pool, carrega o script (a partir do OPcache se disponível) e começa a executar a lógica da aplicação.
- Execução de Consultas MySQL: A aplicação PHP constrói e executa consultas SQL via PDO. O MySQL verifica a sua cache de consultas (descontinuada no MySQL 8.0), analisa a consulta, usa o otimizador para selecionar um plano de execução, recupera dados do buffer pool InnoDB ou do disco e devolve o conjunto de resultados.
- Montagem da Resposta: O PHP monta a saída HTML ou JSON final, potencialmente aplicando renderização de templates, serialização ou compressão.
- Apache Entrega a Resposta: O Apache aplica quaisquer filtros de saída (ex.: `mod_deflate` para compressão gzip), define cabeçalhos de resposta (cache-control, content-type, cabeçalhos de segurança) e transmite a resposta pela ligação TCP estabelecida.
LAMP vs. LEMP vs. MEAN: Comparação de Arquiteturas
| Funcionalidade | LAMP | LEMP | MEAN |
|---|
| — | — | — | — |
|---|
| Servidor Web | Apache | Nginx | Node.js (integrado) |
|---|
| Base de Dados | MySQL / MariaDB | MySQL / MariaDB | MongoDB |
|---|
| Linguagem | PHP (ou Perl/Python) | PHP via PHP-FPM | JavaScript (Node.js) |
|---|
| Modelo de Concorrência | Baseado em processos/threads | Orientado a eventos, assíncrono | Orientado a eventos, assíncrono |
|---|
| Servir Ficheiros Estáticos | Bom | Excelente | Moderado |
|---|
| Compatibilidade PHP | Nativa | Via FastCGI (PHP-FPM) | Não aplicável |
|---|
| Consumo de Memória | Moderado a elevado | Baixo a moderado | Moderado |
|---|
| Complexidade de Configuração | Moderada | Moderada | Elevada |
|---|
| Melhor Para | CMS, aplicações PHP legadas, WordPress | Aplicações PHP de alto tráfego, APIs | Aplicações em tempo real, SPAs |
|---|
| Curva de Aprendizagem | Baixa | Baixa a moderada | Moderada a elevada |
|---|
Perspetiva fundamental: LEMP (Linux, Nginx, MySQL, PHP) não é um substituto para LAMP, mas uma variante otimizada para servir ficheiros estáticos com alta concorrência e eficiência de memória. A arquitetura orientada a eventos do Nginx gere milhares de ligações keep-alive simultâneas com uma fração da memória que o MPM `prefork` do Apache requer. No entanto, o suporte a `.htaccess` e a flexibilidade de `mod_rewrite` do Apache tornam-no a escolha pragmática para implementações no estilo de alojamento partilhado e aplicações que dependem fortemente de configuração por diretório.
Principais Casos de Utilização para Stacks LAMP
Sistemas de Gestão de Conteúdo
WordPress, Joomla e Drupal são construídos especificamente para a stack LAMP. O WordPress por si só alimenta mais de 43% de todos os websites a nível global, e todo o seu ecossistema de plugins (60.000+ plugins) pressupõe um ambiente LAMP. Executar WordPress em qualquer coisa que não seja uma stack LAMP ou LEMP introduz riscos de compatibilidade com plugins que usam consultas MySQL diretas ou regras de reescrita específicas do Apache.
Aplicações de E-Commerce
Magento (Adobe Commerce), WooCommerce e OpenCart têm como alvo o LAMP. As cargas de trabalho de e-commerce são particularmente exigentes: requerem transações conformes com ACID (InnoDB), gestão de sessões, joins complexos de múltiplas tabelas para consultas de catálogo de produtos e terminação SSL fiável. Um ambiente de Servidores Dedicados devidamente ajustado com armazenamento NVMe fornece o débito de I/O que estas cargas de trabalho exigem.
APIs RESTful e GraphQL
Frameworks PHP como Laravel e Lumen destacam-se na construção de backends de API. Um servidor de API baseado em LAMP que processa JSON sobre HTTP é uma arquitetura comum para backends de aplicações móveis, plataformas SaaS e componentes de microsserviços. O modelo de pool de processos do PHP-FPM fornece isolamento natural de pedidos, e o tipo de coluna JSON do MySQL (disponível desde MySQL 5.7) permite armazenamento de dados semi-estruturados sem abandonar a integridade relacional.
Manutenção de Aplicações Legadas
Uma parte significativa da infraestrutura web empresarial executa em bases de código PHP 5.x ou 7.x que não podem ser migradas de forma trivial. LAMP continua a ser o único ambiente de execução viável para estas aplicações. Containerizar stacks LAMP legadas usando Docker (com imagens base `php:7.4-apache`) fornece isolamento e portabilidade sem exigir alterações de código.
Ambientes de Desenvolvimento e Teste
LAMP é o ambiente de desenvolvimento local padrão para programadores PHP, tipicamente provisionado via Docker Compose, Vagrant ou ferramentas como XAMPP e Laragon. Espelhar a configuração LAMP de produção no desenvolvimento previne a classe de falhas de implementação “funciona na minha máquina”.
Reforço de Segurança para Implementações LAMP em Produção
Uma instalação LAMP padrão não está pronta para produção. Os seguintes passos de reforço são inegociáveis:
Nível do Sistema Operativo
- Desativar o login SSH como root; impor apenas autenticação por chave
- Configurar `ufw` ou `firewalld` para permitir apenas as portas 22, 80 e 443
- Ativar atualizações de segurança automáticas para pacotes do SO
- Instalar e configurar `fail2ban` para bloquear tentativas de força bruta contra SSH e aplicações web
Nível Apache
- Definir `ServerTokens Prod` e `ServerSignature Off` para suprimir a divulgação de versão
- Desativar a listagem de diretórios (`Options -Indexes`)
- Adicionar cabeçalhos de segurança: `X-Content-Type-Options`, `X-Frame-Options`, `Content-Security-Policy`, `Strict-Transport-Security`
- Impor HTTPS usando um certificado SSL válido — a instalação de Certificados SSL é obrigatória para qualquer implementação em produção
Nível MySQL
- Executar `mysql_secure_installation` imediatamente após a instalação
- Criar utilizadores de base de dados específicos para a aplicação com os privilégios mínimos necessários — nunca usar `root` para ligações de aplicação
- Vincular MySQL a `127.0.0.1` a menos que o acesso remoto seja explicitamente necessário
- Ativar o registo binário para capacidade de recuperação point-in-time
Nível PHP
- Definir `expose_php = Off` em `php.ini`
- Desativar funções perigosas: `exec`, `passthru`, `shell_exec`, `system` a menos que sejam explicitamente necessárias
- Definir `display_errors = Off` e `log_errors = On` em produção
- Configurar `open_basedir` para restringir o acesso de ficheiros PHP ao diretório da aplicação
- Manter o PHP atualizado para a versão suportada atual
Estratégias de Otimização de Desempenho
Arquitetura de Cache
Uma stack LAMP de produção sem uma camada de cache está a desperdiçar desempenho significativo:
- OPcache: Ativar ao nível PHP. Esta é a alteração única de maior impacto para o desempenho PHP.
- Cache de objetos: Redis ou Memcached como armazenamento chave-valor em memória para resultados de consultas de base de dados, dados de sessão e valores calculados. WordPress com cache de objetos Redis pode reduzir as consultas MySQL em mais de 80% em páginas em cache.
- Cache de página completa: Varnish Cache à frente do Apache pode servir respostas HTML em cache sem invocar PHP ou MySQL, processando dezenas de milhares de pedidos por segundo em hardware modesto.
- Apache `mod_cache`: Para configurações mais simples, o módulo de cache integrado do Apache pode armazenar em cache conteúdo estático e dinâmico com TTLs configuráveis.
Otimização de Consultas de Base de Dados
- Ativar o registo de consultas lentas (`slow_query_log = 1`, `long_query_time = 1`) e auditá-lo regularmente com `mysqldumpslow` ou `pt-query-digest`
- Usar `EXPLAIN ANALYZE` para compreender os planos de execução de consultas antes de implementar alterações de esquema
- Implementar réplicas de leitura para cargas de trabalho com muita leitura, de forma a distribuir a carga de consultas por múltiplas instâncias MySQL
Ajuste Apache
- Ativar `mod_deflate` para compressão gzip de respostas baseadas em texto (HTML, CSS, JavaScript, JSON)
- Configurar cabeçalhos `mod_expires` e `Cache-Control` para recursos estáticos de forma a aproveitar a cache do browser
- Ajustar `MaxRequestWorkers`, `ServerLimit` e `ThreadsPerChild` com base na RAM disponível e na concorrência esperada
Implementar uma Stack LAMP: Lista de Verificação para Produção
Antes de colocar em produção uma implementação LAMP num VPS com cPanel ou num VPS Linux básico, verifique o seguinte:
- O SO Linux está totalmente atualizado; as atualizações de segurança automáticas estão configuradas
- O Apache está a executar com o MPM `event` e PHP-FPM (não `mod_php`)
- A versão PHP é 8.2 ou 8.3; OPcache está ativado e configurado
- MySQL está a usar exclusivamente InnoDB; `innodb_buffer_pool_size` está ajustado à RAM disponível
- Todas as ligações de base de dados da aplicação usam um utilizador MySQL dedicado com privilégios mínimos
- HTTPS é imposto com um certificado válido; HTTP redireciona para HTTPS
- Os cabeçalhos de segurança estão presentes na configuração Apache
- `fail2ban` está ativo e a monitorizar os registos de acesso Apache
- As regras de firewall permitem apenas as portas necessárias
- As cópias de segurança automáticas da base de dados estão agendadas e testadas
- O registo de erros da aplicação está configurado para escrever em ficheiro, não para a saída do browser
Quando LAMP Não É a Escolha Certa
LAMP não é universalmente ótimo. Reconheça estes cenários onde arquiteturas alternativas são mais adequadas:
- Comunicação bidirecional em tempo real (chat, dashboards ao vivo, edição colaborativa): Node.js com suporte WebSocket ou servidores baseados em Go são mais adequados. O modelo de execução síncrona do PHP e o ciclo de vida de processo por pedido são fundamentalmente incompatíveis com o processamento de ligações persistentes.
- Entrega de conteúdo estático com concorrência extremamente elevada: Um CDN ou Nginx a servir ficheiros estáticos superará o Apache a uma fração do custo de recursos.
- Inferência de machine learning ou cargas de trabalho aceleradas por GPU: Stacks baseadas em Python com infraestrutura dedicada de Alojamento GPU são a arquitetura correta.
- Microsserviços com persistência poliglota: Se a sua arquitetura requer múltiplos tipos de base de dados (documento, grafo, séries temporais), o modelo centrado em MySQL de uma stack LAMP torna-se uma restrição em vez de um ativo.
- Implementações serverless ou edge-compute: PHP pode ser executado em ambientes serverless (AWS Lambda via Bref, Cloudflare Workers via runtimes experimentais), mas o modelo operacional é fundamentalmente diferente de um servidor LAMP tradicional.
Matriz de Decisão: LAMP É a Escolha Certa para o Seu Projeto?
| Requisito | LAMP Adequado | Considerar Alternativa |
|---|
| — | — | — |
|---|
| CMS baseado em PHP (WordPress, Drupal) | Sim | Não |
|---|
| Funcionalidades em tempo real com alta concorrência | Não | Node.js, Go |
|---|
| API RESTful com framework PHP | Sim | Não |
|---|
| Cargas de trabalho GPU/ML | Não | Python + stack GPU |
|---|
| Manutenção de PHP 5.x/7.x legado | Sim | Não |
|---|
| Site estático sem lógica de backend | Não | CDN + alojamento estático |
|---|
| E-commerce (WooCommerce, Magento) | Sim | Não |
|---|
| Microsserviços com BD poliglota | Parcial | Serviços containerizados |
|---|
| Projeto pequeno com orçamento limitado | Sim | Não |
|---|
Principais Conclusões Práticas
- MPM e PHP-FPM não são otimizações opcionais — são a diferença entre uma implementação Apache de nível de desenvolvimento e de nível de produção. Mude de `prefork`+`mod_php` para `event`+`PHP-FPM` antes de qualquer tráfego atingir o servidor.
- OPcache é desempenho gratuito. Não existe razão válida para executar PHP em produção sem ele ativado e devidamente dimensionado.
- `innodb_buffer_pool_size` é a alteração de configuração MySQL de maior impacto. Defina-o antes de implementar qualquer aplicação.
- MariaDB é uma alternativa legítima e frequentemente superior ao MySQL para stacks LAMP. Avalie-o como padrão em vez de uma reflexão posterior.
- O reforço de segurança não é uma tarefa pós-lançamento. Uma instalação LAMP padrão exposta à internet será sondada em minutos após entrar em funcionamento.
- A cache é arquitetura, não otimização. Projete a estratégia de cache da sua aplicação (OPcache, Redis, Varnish) antes de escrever a primeira linha de código da aplicação.
- Para cargas de trabalho de produção que requerem controlo total sobre todos estes parâmetros, um ambiente de Alojamento VPS com acesso root é a infraestrutura mínima viável — o alojamento partilhado não consegue expor a superfície de configuração que uma stack LAMP devidamente ajustada requer.
Perguntas Frequentes
Qual é a diferença entre as stacks LAMP e LEMP?
LAMP usa Apache como servidor web, enquanto LEMP substitui o Apache por Nginx. O Nginx usa uma arquitetura assíncrona orientada a eventos que consome menos memória sob alta concorrência e destaca-se a servir ficheiros estáticos. A vantagem do Apache é o seu sistema `.htaccess` maduro e o ecossistema de módulos mais amplo, tornando-o a escolha padrão para WordPress e outras plataformas CMS que dependem de configuração por diretório.
Devo usar MySQL ou MariaDB numa stack LAMP?
MariaDB é um substituto binário compatível para MySQL, mantido pelos programadores originais do MySQL. Oferece melhorias de desempenho em cargas de trabalho específicas, desenvolvimento mais aberto e é a implementação MySQL padrão no Debian e Ubuntu. Para novas implementações, MariaDB é uma escolha padrão sólida. As implementações MySQL existentes não precisam de migrar a menos que sejam necessárias funcionalidades específicas do MariaDB.
Que versão PHP devo usar numa stack LAMP em 2025?
PHP 8.2 ou 8.3 são as versões atualmente suportadas e ativamente mantidas. PHP 8.3 inclui melhorias de desempenho, constantes de classe tipadas e tratamento de erros melhorado. Qualquer versão abaixo de 8.1 está em fim de vida e não recebe patches de segurança — executar versões PHP EOL num servidor público é um risco de segurança crítico.
Posso executar múltiplas versões PHP num único servidor LAMP?
Sim. Usando PHP-FPM, pode executar múltiplos pools PHP-FPM simultaneamente, cada um vinculado a um socket diferente e a executar uma versão PHP diferente. Os virtual hosts Apache são então configurados para fazer proxy para o socket PHP-FPM apropriado. Esta é a abordagem padrão para alojar múltiplas aplicações com diferentes requisitos de versão PHP num único servidor.
LAMP é adequado para aplicações de produção de alto tráfego?
Sim, com ajuste adequado. A combinação de PHP-FPM com OPcache, cache de objetos Redis, MySQL com um buffer pool InnoDB corretamente dimensionado e uma cache de página completa como Varnish pode sustentar dezenas de milhares de pedidos por segundo em hardware adequadamente provisionado. O estrangulamento na maioria das implementações LAMP não é a própria stack, mas a má configuração — especificamente, camadas de cache em falta, consultas de base de dados sem índice e Apache a executar com o MPM `prefork`.
