Instalação LEMP no Ubuntu com OpenLiteSpeed e Otimizações

10 min de leitura Hospedagem e Infraestrutura
Instalação LEMP no Ubuntu com OpenLiteSpeed e Otimizações

A infraestrutura de hospedagem para WordPress e WooCommerce exige equilíbrio entre desempenho, segurança e escalabilidade. Para profissionais de TI e sysadmins que gerenciam ambientes VPS no Ubuntu, a pilha LEMP Stack (Linux, Nginx, MySQL/MariaDB, PHP) representa o padrão ouro para aplicações web modernas. No entanto, a configuração manual dos componentes muitas vezes deixa lacunas críticas em otimização de cache e segurança.

Este guia técnico detalha a instalação completa da stack LEMP no Ubuntu 22.04 LTS, focando na integração com cache Redis, configurações avançadas de PHP para otimização WordPress e práticas essenciais de manutenção via linha de comando. O objetivo é fornecer um ambiente robusto, pronto para suportar tráfego intenso e operações complexas.

1. Preparação do Ambiente Linux

Antes de instalar qualquer software de aplicação, é fundamental garantir que o sistema operacional esteja atualizado e com as dependências básicas instaladas. Isso reduz vulnerabilidades de segurança e garante compatibilidade com bibliotecas modernas.

  1. Atualize o índice de pacotes do gerenciador APT:
sudo apt update && sudo apt upgrade -y
  1. Instale utilitários essenciais para gerenciamento de rede e criptografia:
sudo apt install curl wget gnupg2 ca-certificates apt-transport-https software-properties-common -y

É recomendável configurar o firewall UFW (Uncomplicated Firewall) para permitir apenas as portas necessárias. Para um servidor web padrão, libere SSH (porta 22), HTTP (80) e HTTPS (443).

sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

2. Instalação do Banco de Dados MariaDB

O MariaDB é o fork do MySQL mais utilizado em ambientes open-source devido à sua performance e compatibilidade total com plugins existentes. Para WordPress e WooCommerce, a engine InnoDB é obrigatória para garantir integridade transacional.

  1. Instale o servidor MariaDB:
sudo apt install mariadb-server -y
  1. Execute o script de segurança inicial. Este passo é crítico para remover configurações padrão inseguras:
sudo mysql_secure_installation

Siga as prompts: defina uma senha forte para o root do banco de dados, remova usuários anônimos, desabilite login root remoto e remova o banco de dados de teste. Confirme todas as alterações com 'Y'.

  1. Crie o banco de dados e um usuário dedicado para a aplicação WordPress:
sudo mysql -u root -p

Dentro do prompt do MySQL, execute os seguintes comandos SQL (substituindo 'senha_forte' por uma senha gerada aleatoriamente):

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'senha_forte';
GRANT ALL ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

A configuração utf8mb4 é essencial para suportar emojis e caracteres especiais comuns em conteúdos multilíngues.

3. Instalação e Configuração do PHP com Otimizações

O Ubuntu 22.04 vem com o PHP 8.1 por padrão, mas para aplicações críticas como WooCommerce, é altamente recomendável utilizar a versão mais recente disponível (PHP 8.2 ou 8.3) através dos repositórios ondrej/php. Versões mais antigas perdem suporte a otimizações de JIT Compiler e melhorias no garbage collector.

  1. Adicione o repositório PPA e atualize:
sudo add-apt-repository ppa:ondrej/php
sudo apt update
  1. Instale o PHP e as extensões críticas para WordPress, incluindo suporte ao Redis:
sudo apt install php8.3-fpm php8.3-cli php8.3-common php8.3-mysql php8.3-zip php8.3-gd php8.3-mbstring php8.3-curl php8.3-xml php8.3-bcmath php8.3-redis -y

A extensão php8.3-redis permite que o PHP se comunique diretamente com o servidor Redis em memória, acelerando drasticamente a leitura de sessões e objetos de cache.

  1. Edite o arquivo de configuração do PHP-FPM para otimizar a memória:
sudo nano /etc/php/8.3/fpm/php.ini

Altere as seguintes diretrizes para equilibrar performance e consumo de RAM no seu VPS:

memory_limit = 256M
max_execution_time = 60
max_input_vars = 3000
post_max_size = 64M
upload_max_filesize = 64M

O aumento de max_input_vars é vital para sites com muitos produtos no WooCommerce, evitando erros de "Too many input variables" ao salvar categorias complexas.

4. Configuração do Servidor Web Nginx

O Nginx processa requisições assíncronamente, consumindo menos memória que o Apache em ambientes de alta concorrência. A configuração correta dos blocos de servidor (server blocks) é onde a mágica da performance acontece.

  1. Instale o Nginx:
sudo apt install nginx -y
  1. Crie um arquivo de configuração para o seu domínio. Substitua seudominio.com pelo seu FQDN:
sudo nano /etc/nginx/sites-available/seudominio.com

Insira a seguinte configuração base, que inclui suporte a PHP-FPM e reescrita de URLs para WordPress:

server {
    listen 80;
    listen [::]:80;
    server_name seudominio.com www.seudominio.com;
    root /var/www/seudominio.com/html;
    index index.php index.html index.htm;

    client_max_body_size 64M;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

    # Cache de imagens estáticas por 1 ano
    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }
}
  1. Ative o site e teste a configuração antes de reiniciar:
sudo ln -s /etc/nginx/sites-available/seudominio.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

5. Implementação de Cache Redis para WordPress

O cache de objeto é o componente mais negligenciado em instalações LEMP básicas. Sem ele, cada visita ao site gera consultas pesadas ao banco de dados. O Redis armazena esses resultados na RAM, reduzindo a latência.

  1. Instale o servidor Redis:
sudo apt install redis-server -y
  1. Verifique se o serviço está rodando e habilitado na inicialização:
sudo systemctl status redis-server
sudo systemctl enable redis-server
  1. No lado do WordPress, a configuração deve ser feita via WP-CLI ou arquivo wp-config.php. Para uma instalação limpa, edite o wp-config.php e adicione a definição da interface de cache antes da linha "That's all, stop editing!":
define('WP_CACHE', true);
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_MAXTTL', '86400');

Em seguida, instale o plugin oficial "Redis Object Cache" no painel administrativo do WordPress e clique em "Enable". Isso garante a sincronização entre o PHP-FPM e o daemon Redis.

6. Segurança SSL com Let's Encrypt

Nenhuma configuração de LEMP está completa sem HTTPS. O uso de certificados válidos é requisito para SEO e segurança de transações no WooCommerce.

  1. Instale o Certbot:
sudo apt install certbot python3-certbot-nginx -y
  1. Solicite e aplique o certificado automaticamente para o seu domínio. O Nginx será reconfigurado para redirecionar todo o tráfego HTTP para HTTPS:
sudo certbot --nginx -d seudominio.com -d www.seudominio.com

Confirme a redirecionamento e aceite os termos de serviço. O Certbot também configura a renovação automática dos certificados via cron job.

7. Automação de Backup com WP-CLI

Migração VPS ou recuperação de desastres dependem de backups consistentes. A ferramenta WP-CLI permite automatizar exportações completas (banco + arquivos) sem necessidade de plugins pesados.

  1. Instale o WP-CLI globalmente:
cd /tmp
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
  1. Crie um script de backup simples. Crie o arquivo /opt/wp-backup.sh:
#!/bin/bash
DOMAIN="seudominio.com"
BACKUP_DIR="/var/backups/wordpress/$DOMAIN"
DATE=$(date +"%Y%m%d_%H%M%S")

mkdir -p $BACKUP_DIR

# Backup do banco de dados
wp --path=/var/www/$DOMAIN/html db export $BACKUP_DIR/db_$DATE.sql.gz

# Backup dos arquivos
tar -czf $BACKUP_DIR/files_$DATE.tar.gz -C /var/www/$DOMAIN/html .

# Limpar backups antigos (manter últimos 7 dias)
find $BACKUP_DIR -type f -mtime +7 -delete
  1. Torne o script executável e agende-o via crontab:
chmod +x /opt/wp-backup.sh
sudo crontab -e

Adicione a linha para rodar diariamente à meia-noite:

0 0 * * * /opt/wp-backup.sh

8. Plugins Essenciais e Manutenção de Multisite

Embora o foco deste guia seja a infraestrutura, a escolha dos plugins no lado da aplicação impacta diretamente a estabilidade do LEMP.

  • Otimização WordPress: Utilize plugins de minificação de CSS/JS que geram arquivos estáticos (como Autoptimize ou WP Rocket). Isso reduz a carga no Nginx e melhora o Time to First Byte (TTFB).
  • Segurança: Instale um firewall de aplicação web (WAF) via plugin para bloquear tentativas de login brute-force antes que elas atinjam o servidor.

Para administradores que gerenciam WordPress Multisite, a configuração do LEMP requer ajustes adicionais. É necessário habilitar a diretiva subdomain_install no banco de dados e garantir que o Nginx possua um wildcard DNS apontando para o servidor. A estrutura de pastas dos sites filhos será gerada dinamicamente, exigindo que as permissões do usuário www-data estejam corretamente configuradas:

sudo chown -R www-data:www-data /var/www/seudominio.com
sudo find /var/www/seudominio.com -type d -exec chmod 750 {} \;
sudo find /var/www/seudominio.com -type f -exec chmod 640 {} \;

A má configuração de permissões é a causa raiz da maioria dos erros "500 Internal Server Error" em ambientes multisite após migrações.

9. Testes Finais e Monitoramento

Após a instalação, valide o ambiente executando verificações de integridade.

  1. Verifique se o PHP está sendo processado pelo Nginx criando um arquivo info.php no root do site:
sudo nano /var/www/seudominio.com/html/info.php
<?php phpinfo(); ?>

Acesse http://seudominio.com/info.php. Confirme que o "Server API" lista FPM/FastCGI e que a versão do PHP é a 8.3. Remova este arquivo imediatamente após o teste por segurança.

  1. Monitore os logs em tempo real para detectar erros de configuração:
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/mysql/error.log

Com a stack LEMP configurada, o Redis ativado e os backups automatizados, você possui uma base sólida para hospedar WordPress de alta performance. Esta infraestrutura suporta desde blogs pessoais até lojas WooCommerce com milhares de transações diárias, desde que monitorada regularmente.

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000