O que são as stacks LAMP e LEMP?
LAMP e LEMP dão nome aos quatro programas que servem um site típico: Linux, um servidor web, uma base de dados e 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 stacks, a base de dados é MySQL ou MariaDB e a linguagem de programação é PHP.
Aplicações PHP como o WordPress, o WooCommerce e o Joomla correm nesta stack. O WordPress.org recomenda o Apache ou o Nginx como servidor web, por isso ambos são uma base sólida. A sua escolha não decide se a aplicação funciona. Muda a forma como escreve as definições.
Como funciona a stack?
| Camada | LAMP | LEMP | Função |
|---|---|---|---|
| Sistema operativo | Linux | Linux | A base sobre a qual tudo corre |
| Servidor web | Apache | Nginx | Responde aos pedidos dos navegadores |
| Base de dados | MySQL ou MariaDB | MySQL ou MariaDB | Guarda publicações, utilizadores e encomendas |
| Linguagem | PHP | PHP, através do PHP-FPM | Constrói a página |
Um pedido percorre a stack desta forma:
- O navegador envia um pedido para o seu domínio. Chega à porta 80 ou 443 do seu servidor.
- O servidor web recebe o pedido. Se for de uma imagem ou de um ficheiro CSS, serve ele próprio o ficheiro.
- Se o pedido for de um ficheiro PHP, o servidor web entrega-o ao PHP e o PHP executa o código.
- O PHP consulta a base de dados quando é preciso e constrói a página. O servidor web devolve a página ao navegador.
Se uma página não abrir, verifique as camadas por 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, na LAMP, usa-se apache2 em vez de nginx. O problema começa naquele que não estiver em execução.
Qual é a diferença entre LAMP e LEMP?
- O Apache lê ficheiros
.htaccesse o Nginx não. No Nginx, as regras vão na configuração do servidor. - O Nginx não executa PHP dentro de si. Passa os pedidos a um serviço separado chamado PHP-FPM. O Apache pode executar o PHP dentro de si ou através do PHP-FPM.
- As pastas de configuração são diferentes. No Ubuntu, o Apache usa
/etc/apache2e o Nginx usa/etc/nginx. - A utilização de memória depende mais do número de workers do PHP-FPM e das definições da base de dados do que da escolha do servidor web.
- Nenhum é claramente superior. Ambos são muito usados, por isso decidem o guia que segue e os seus hábitos.
MySQL ou MariaDB?
O MariaDB é uma base de dados de código aberto que se separou do MySQL, e os comandos e clientes de ambos são em grande parte compatíveis. A página oficial de requisitos do WordPress aceita ambos, por isso consulte lá as versões mínimas atuais. No Ubuntu, o pacote mariadb-server instala-se com um comando. Segundo a documentação do MariaDB, a conta root usa por predefinição a autenticação unix_socket desde a versão 10.4. No servidor, basta executar sudo mariadb. Não é preciso palavra-passe de root.
Montar uma LEMP no Ubuntu
Estes passos são para Ubuntu e Debian. Primeiro ligue-se ao servidor por SSH. Os exemplos usam example.com como nome de domínio, por isso substitua-o 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 do repositório de pacotes. - Reforce a segurança da base de dados:
sudo mariadb-secure-installation. Responda que sim a remover os utilizadores anónimos, remover a base de dados de teste e proibir o início de sessão remoto como root. - Crie a pasta do site:
sudo mkdir -p /var/www/example - Abra um ficheiro 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 comando
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 usar o ufw, abra as portas 80 e 443:
sudo ufw allow 80/tcpesudo ufw allow 443/tcp. Certifique-se de que a porta SSH (22) está aberta.
Para testar se o PHP funciona, escreva um ficheiro de teste:
echo '<?php phpinfo();' | sudo tee /var/www/example/info.php
Se o domínio ainda não aponta para o servidor, teste a partir de dentro do servidor com curl -H 'Host: example.com' http://127.0.0.1/info.php. Assim que vir que funciona, apague o ficheiro: sudo rm /var/www/example/info.php. Essa página mostra a toda a gente os dados do seu servidor.
Uma base de dados para a sua aplicação
Abra a shell da base de dados com sudo mariadb e crie uma base de dados e um utilizador separados para cada aplicação. Escolha você uma palavra-passe forte:
CREATE DATABASE exampledb CHARACTER SET utf8mb4;
CREATE USER 'exampleuser'@'localhost' IDENTIFIED BY 'a-strong-password';
GRANT ALL ON exampledb.* TO 'exampleuser'@'localhost';
Estes três valores (base de dados, utilizador, palavra-passe) introduzem-se no ecrã de configuração do WordPress. Para que os links permanentes do WordPress funcionem, substitua =404 na linha do Nginx por /index.php?$args.
O que muda na LAMP?
Para a stack Apache, os pacotes instalam-se assim:
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql
Define o site em /etc/apache2/sites-available e ativa-o com sudo a2ensite example. Para os links permanentes, execute sudo a2enmod rewrite e reinicie o Apache com sudo systemctl restart apache2. Para que os ficheiros .htaccess tenham efeito, tem de definir AllowOverride All para a pasta do site. Também pode executar o Apache com o PHP-FPM, o que combina com o modelo orientado a eventos event. Os passos da base de dados são os mesmos da 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 proprietário das pastas em que o servidor web precisa de escrever. No Ubuntu e no Debian, o servidor web corre como o utilizador
www-data:sudo chown -R www-data:www-data /var/www/example. - Instale as atualizações com regularidade com
sudo apt update && sudo apt upgrade. Depois da instalação, as atualizações do sistema operativo e do software são da sua responsabilidade. - Faça a cópia de segurança da base de dados em separado com o
mariadb-dump. A cópia de segurança diária do servidor está incluída no preço, mas deve guardar você mesmo uma cópia extra dos dados importantes.
Se quiser a stack pronta a usar, encomende com a opção LAMP ou LEMP da Seturack e ela instala-se sozinha. Se só precisa do WordPress, a opção VPS WordPress basta: a configuração demora cerca de 4 a 5 minutos, e o endereço e a palavra-passe aparecem no painel.
Comentários0
Ainda não existem comentários
Seja a primeira pessoa a partilhar a sua opinião.
Inicie sessão ou crie uma conta para deixar um comentário.