Instalar LEMP no Linux: Tutorial Completo para Iniciantes

8 min de leitura Linux VPS
Instalar LEMP no Linux: Tutorial Completo para Iniciantes

O que é o Stack LEMP e por que ele é essencial?

A sigla LEMP representa um conjunto de software de código aberto amplamente utilizado para hospedar sites e aplicações web dinâmicas. Cada letra corresponde a um componente fundamental:

  • L: Linux, o sistema operacional que serve como base.
  • E: Nginx (pronunciado "Engine-X"), o servidor web de alto desempenho.
  • M: MariaDB ou MySQL, o sistema de gerenciamento de banco de dados.
  • P: PHP, a linguagem de script para processamento dinâmico (ou Python/Perl).

Diferente do popular LAMP (que usa Apache), o Nginx no stack LEMP é conhecido por sua eficiência em lidar com muitas conexões simultâneas e baixo consumo de memória, tornando-o ideal para VPS para iniciantes que precisam maximizar a performance dos recursos disponíveis. Este tutorial Linux guiará você pela instalação completa, configuração básica e hardening inicial do servidor.

Atenção: Certifique-se de ter acesso SSH como usuário root ou com privilégios sudo à sua VPS antes de iniciar o processo.

Passo 1: Atualização do Sistema Operacional

Antes de instalar qualquer software, é crucial garantir que os pacotes existentes estejam atualizados. Isso corrige vulnerabilidades de segurança e garante compatibilidade com as versões mais recentes dos componentes do LEMP.

No terminal, execute o comando abaixo para sincronizar o índice dos pacotes:

sudo apt update

Em seguida, atualize os pacotes instalados. Em sistemas Debian/Ubuntu, isso pode levar alguns minutos dependendo da largura de banda e do número de pacotes antigos:

sudo apt upgrade -y

O sinalizador -y confirma automaticamente a instalação, evitando que você precise digitar "Y" durante o processo. Após concluir, considere reiniciar o servidor para aplicar atualizações do kernel, se necessário:

sudo reboot

Passo 2: Instalação e Configuração do Nginx

O Nginx será responsável por servir seus arquivos estáticos (HTML, CSS, JavaScript) e atuar como proxy reverso para o PHP. Vamos instalá-lo agora.

Instale o pacote nginx:

sudo apt install nginx -y

Após a instalação, o serviço geralmente é iniciado automaticamente. Verifique o status do serviço:

sudo systemctl status nginx

Se o status indicar "active (running)", o servidor web está operacional. Caso contrário, inicie-o com:

sudo systemctl start nginx

Configuração do Firewall

A maioria das VPS modernas utiliza o UFW (Uncomplicated Firewall). Você precisa permitir o tráfego HTTP (porta 80) e, futuramente, HTTPS (porta 443).

sudo ufw allow 'Nginx Full'

Verifique se as regras foram aplicadas corretamente:

sudo ufw status

Acesse o endereço IP público da sua VPS em um navegador web. Você deverá ver a página padrão de boas-vindas do Nginx ("Welcome to nginx!"). Isso confirma que o servidor web está respondendo corretamente.

Passo 3: Instalação do MariaDB

O banco de dados armazenará as informações do seu site, como conteúdo de CMS (WordPress, Joomla) ou dados de aplicações customizadas. O MariaDB é um fork compatível e muito popular do MySQL.

sudo apt install mariadb-server mariadb-client -y

Assim como o Nginx, inicie e habilite o serviço:

sudo systemctl start mariadb
sudo systemctl enable mariadb

Hardening do Banco de Dados

Por padrão, a instalação do MariaDB vem com configurações inseguras (como senha vazia para root e acesso remoto habilitado). Execute o script de segurança incluído:

sudo mysql_secure_installation

O script fará uma série de perguntas. Recomendamos as seguintes respostas:

  1. VALIDATE PASSWORD COMPONENT?: Digite Y se quiser impor políticas fortes de senha para usuários do banco de dados.
  2. CHANGE ROOT PASSWORD?: Digite N (o MariaDB usa autenticação unix_socket por padrão, que é segura).
  3. Remove anonymous users?: Digite Y.
  4. Disallow root login remotely?: Digite Y. O acesso root deve ser feito localmente via SSH.
  5. Remove test database?: Digite Y.
  6. Reload privilege tables now?: Digite Y.

Agora seu banco de dados está seguro e pronto para uso.

Passo 4: Instalação do PHP e Dependências

O PHP processará os scripts dinâmicos. Para interagir com o Nginx, precisamos instalar o php-fpm (FastCGI Process Manager) e módulos comuns.

sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-imagick php-readline libmagickcore-dev libmagickwand-dev -y

Neste comando, estamos instalando:

  • php-fpm: O gerenciador de processos PHP.
  • php-mysql: Permite ao PHP conectar-se ao MariaDB.
  • php-curl, php-gd, etc.: Bibliotecas essenciais para funcionalidades comuns de aplicações web.

Configuração do FPM

O Nginx não processa PHP nativamente; ele envia as requisições ao PHP-FPM via socket. Verifique onde o socket está localizado:

sudo nano /etc/php/8.1/fpm/pool.d/www.conf

Nota: O número da versão (ex: 8.1) pode variar dependendo do seu sistema. Use php -v para verificar a versão instalada.

Procure pela linha listen =. Ela deve estar configurada como:

listen = /run/php/php8.1-fpm.sock

Salve o arquivo (Ctrl+O, Enter) e saia (Ctrl+X). Reinicie o serviço PHP-FPM para aplicar alterações:

sudo systemctl restart php8.1-fpm

Passo 5: Configurando o Nginx para Processar PHP

Agora precisamos dizer ao Nginx para enviar requisições .php para o PHP-FPM em vez de tentar servi-las como arquivos estáticos.

Edite o arquivo de configuração do seu site. Se você ainda não criou um virtual host, usaremos a configuração padrão:

sudo nano /etc/nginx/sites-available/default

Dentro da seção server, faça as seguintes alterações:

  1. Adicione index.php à diretiva index:
index index.html index.htm index.php;
  1. Descomente e ajuste a localização do PHP. Procure por #location ~ \.php$ e remova as hashtags, ajustando conforme abaixo:
location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
  1. Adicione uma verificação para garantir que o arquivo existe antes de enviar ao PHP (evita erros 500 em arquivos inexistentes):
location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

Importante: Se estiver usando HTTPS ou um domínio específico, certifique-se de que o bloco server corresponda à configuração correta.

Teste a configuração do Nginx para evitar erros de sintaxe:

sudo nginx -t

Se o teste for bem-sucedido, recarregue o Nginx:

sudo systemctl reload nginx

Passo 6: Testando a Instalação

Crie um arquivo PHP no diretório raiz do servidor web para verificar se tudo está funcionando.

sudo nano /var/www/html/info.php

Dentro do arquivo, escreva:

<?php
phpinfo();
?

Salve e saia. Em seguida, acesse http://SEU_IP/info.php no navegador.

Você verá uma página detalhada com todas as configurações do PHP, módulos instalados e versão do servidor. Atenção de segurança: Esta página expõe informações sensíveis do servidor. Assim que confirmar que o PHP está funcionando, remova o arquivo imediatamente:

sudo rm /var/www/html/info.php

Passo 7: Boas Práticas e Segurança Inicial

A instalação básica está completa, mas um servidor em produção requer configurações adicionais.

Criando Usuário Não-Root

Nunca opere o servidor diretamente como root. Crie um usuário administrativo:

sudo adduser novoadmin
sudo usermod -aG sudo novoadmin

Use esse novo usuário para gerenciar arquivos do site e fazer deploy de código.

Habilitando HTTPS com Let's Encrypt

Para criptografar o tráfego, instale o Certbot:

sudo apt install certbot python3-certbot-nginx -y

E obtenha um certificado SSL:

sudo certbot --nginx -d seu-dominio.com -d www.seu-dominio.com

O Certbot configurará automaticamente o redirecionamento HTTP para HTTPS e renovará os certificados.

Migração de Hospedagem: Considerações Finais

Se você está realizando uma migração hospedagem, lembre-se de:

  1. Exportar o Banco de Dados: Use mysqldump no servidor antigo e mysql para importar no novo MariaDB.
  2. Transferir Arquivos: Utilize rsync ou scp para mover os arquivos do site com permissões corretas:
sudo chown -R www-data:www-data /var/www/html/seu-site

O stack LEMP oferece uma base robusta, escalável e segura. Com esta configuração inicial, você está preparado para hospedar desde blogs simples até aplicações web complexas em sua VPS Linux.

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