O que são as pilhas LAMP e LEMP?
LAMP e LEMP dão nome aos quatro softwares que servem um site típico: Linux, um servidor web, um banco de dados e o 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 pilhas, o banco de dados é o MySQL ou o MariaDB e a linguagem de programação é o PHP.
Aplicativos PHP como WordPress, WooCommerce e Joomla rodam nessa pilha. O WordPress.org recomenda o Apache ou o Nginx como servidor web, então os dois são uma base sólida. Qual você escolhe não decide se o seu aplicativo funciona. Muda a forma de escrever as configurações.
Como a pilha funciona?
| Camada | LAMP | LEMP | Função |
|---|---|---|---|
| Sistema operacional | Linux | Linux | A base sobre a qual tudo roda |
| Servidor web | Apache | Nginx | Responde às requisições dos navegadores |
| Banco de dados | MySQL ou MariaDB | MySQL ou MariaDB | Guarda posts, usuários e pedidos |
| Linguagem | PHP | PHP, pelo PHP-FPM | Monta a página |
Uma requisição percorre a pilha assim:
- O navegador envia uma requisição para o seu domínio. Ela chega à porta 80 ou 443 do seu servidor.
- O servidor web recebe a requisição. Se ela pede uma imagem ou um arquivo CSS, ele mesmo serve o arquivo.
- Se a requisição pede um arquivo PHP, o servidor web a entrega ao PHP e o PHP executa o código.
- O PHP consulta o banco de dados quando necessário e monta a página. O servidor web devolve a página ao navegador.
Se uma página não abrir, confira as camadas em 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 no LAMP você usa apache2 em vez de nginx. O problema começa naquele que não estiver rodando.
Qual é a diferença entre LAMP e LEMP?
- O Apache lê arquivos
.htaccesse o Nginx não. No Nginx, as regras vão na configuração do servidor. - O Nginx não executa o PHP dentro de si. Ele repassa as requisições a um serviço separado chamado PHP-FPM. O Apache pode executar o PHP dentro de si ou pelo PHP-FPM.
- As pastas de configuração são diferentes. No Ubuntu, o Apache usa
/etc/apache2e o Nginx usa/etc/nginx. - O uso de memória é decidido mais pelo número de workers do PHP-FPM e pelas configurações do banco de dados do que pela escolha do servidor web.
- Nenhum dos dois é claramente superior. Ambos são muito usados, então o guia que você segue e os seus hábitos decidem.
MySQL ou MariaDB?
O MariaDB é um banco de dados de código aberto que se separou do MySQL, e seus comandos e clientes são em grande parte compatíveis. A página oficial de requisitos do WordPress aceita os dois, então confira ali as versões mínimas atuais. No Ubuntu, o pacote mariadb-server se instala com um comando. Segundo a documentação do MariaDB, a conta root usa a autenticação unix_socket por padrão desde a versão 10.4. No servidor, basta executar sudo mariadb. Nenhuma senha de root é necessária.
Instalando o LEMP no Ubuntu
Estes passos valem para o Ubuntu e o Debian. Primeiro conecte-se ao servidor por SSH. Os exemplos usam example.com como nome de domínio, então troque pelo seu.
- Atualize a lista de pacotes:
sudo apt update - Instale os pacotes:
sudo apt install nginx mariadb-server php-fpm php-mysql. As versões instaladas são as que estão no repositório de pacotes. - Reforce a segurança do banco de dados:
sudo mariadb-secure-installation. Responda sim para remover usuários anônimos, remover o banco de dados de teste e proibir o login remoto do root. - Crie a pasta do site:
sudo mkdir -p /var/www/example - Abra um arquivo com
sudo nano /etc/nginx/sites-available/examplee 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; } } - O
ls /run/php/mostra o nome real do socket. Escreva-o no lugar dephpX.Y-fpm.sock. - Ative o site:
sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/ - Teste e aplique a configuração:
sudo nginx -te depoissudo systemctl reload nginx - Se você usa o ufw, abra as portas 80 e 443:
sudo ufw allow 80/tcpesudo ufw allow 443/tcp. Confirme que a porta SSH (22) está aberta.
Para testar se o PHP funciona, escreva um arquivo de teste:
echo '<?php phpinfo();' | sudo tee /var/www/example/info.php
Se o domínio ainda não aponta para o servidor, teste de dentro do servidor com curl -H 'Host: example.com' http://127.0.0.1/info.php. Assim que vir que funciona, exclua o arquivo: sudo rm /var/www/example/info.php. Essa página mostra os detalhes do seu servidor a todos.
Um banco de dados para o seu aplicativo
Abra o shell do banco de dados com sudo mariadb e crie um banco de dados e um usuário separados para cada aplicativo. Escolha você mesmo uma senha forte:
CREATE DATABASE exampledb CHARACTER SET utf8mb4;
CREATE USER 'exampleuser'@'localhost' IDENTIFIED BY 'a-strong-password';
GRANT ALL ON exampledb.* TO 'exampleuser'@'localhost';
Você digita esses três valores (banco, usuário, senha) na tela de configuração do WordPress. Para que os links permanentes do WordPress funcionem, troque =404 na linha do Nginx por /index.php?$args.
O que muda no LAMP?
Para a pilha com Apache, você instala os pacotes assim:
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql
Você define o site em /etc/apache2/sites-available e o ativa com sudo a2ensite example. Para os links permanentes, execute sudo a2enmod rewrite e reinicie o Apache com sudo systemctl restart apache2. Para que os arquivos .htaccess tenham efeito, você precisa definir AllowOverride All para a pasta do site. Você também pode rodar o Apache com o PHP-FPM, que combina com o modelo orientado a eventos event. Os passos do banco de dados são os mesmos do 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 dono das pastas em que o servidor web precisa gravar. No Ubuntu e no Debian, o servidor web roda como o usuário
www-data:sudo chown -R www-data:www-data /var/www/example. - Instale as atualizações regularmente com
sudo apt update && sudo apt upgrade. Depois da instalação, as atualizações do sistema operacional e dos softwares são responsabilidade sua. - Faça backup do banco de dados separadamente com o
mariadb-dump. O backup diário do servidor está incluído no preço, mas você ainda deve guardar por conta própria uma cópia extra dos dados importantes.
Se você quer a pilha pronta para usar, faça o pedido com a opção LAMP ou LEMP da Seturack e ela se instala sozinha. Se tudo o que você precisa é do WordPress, a opção VPS WordPress basta: a instalação leva cerca de 4-5 minutos, e o endereço e a senha aparecem no painel.
Comentários0
Ainda não há comentários
Seja a primeira pessoa a compartilhar sua opinião.
Entre ou crie uma conta para deixar um comentário.