Tutorial otimizado para Debian 10 “buster”.
Pré-requisitos: Servidor Debian 10,
Introdução
“LEMP” é o acrónimo de Linux operating system, com o servidor web (E)Nginx . Os dados são armazenado na MariaDB e o processamento dinâmico é tratado pelo PHP.
Instalar Nginx
Atualizar a lista de pacotes
sudo apt update
Instalar Nginx
sudo apt install nginx
Depois de instalado, por norma, o servidor web fica funcional. Para testar abrimos um browser e verificamos com o ip do Servidor abre a página. Caso não abra pode ser de alguma firewall que possa estar a impedir. Em seguida vamos configurar a firewall para permitir ligações na porta 80.
Configurar Firewall ufw, se estiver instalada
Listar as configurações de aplicativos com as quais o ufw sabe trabalhar só com a adição do nome:
sudo ufw app list
Aparece algo do género:
sudo ufw app list | grep Nginx
Output:
Nginx Full
Nginx HTTP
Nginx HTTPS
- Nginx Full: Este perfil abre as duas porta:
80e a porta443(TLS/SSL tráfego criptografado) - Nginx HTTP: Este perfil abre a porta:
80 - Nginx HTTPS: Este perfil abre a porta:
443
Se só pretendermos permitir o tráfego para a port porta 80, fazemos:
sudo ufw allow 'Nginx HTTP'
Se tudo for feito direito já iremos conseguir aceder à página num Browser com o ip do Servidor.
Instalar MariaDB (sistema de Base de Dados)
MariaDB uma base de dados forcada da MySQL com total intenção de manter a compatibilidade. Uma aplicação gestora de conteúdos web como o WordPress originalmente criada para usar a base de dados MySQL deve funcionar sem qualquer problema na MariaDB. A instalação é feita com o uso do pacote “mariadb-server“
sudo apt install mariadb-server
Depois da instalação concluída é recomendável configurá-la para que fique segura.
sudo mysql_secure_installation
- Após correr o comando será perguntado se queremos configurar a pass do utilizador root. Com <Enter> respondemos que Sim.
- Seguida colocamos a pass pretendida e clicar em <Enter>, repetimos a pass e pressionamos <enter>.
- As próximas questões são respondidas com um <enter>, isto é, de forma positiva a:
- Remover utilizadores anonimos
- Desativar a utilização remota do utilizador root
- Remover a Base de dados de teste e o acesso a esta
- Recarregar os privilégios à tabelas existente
Instalar o PHP
Para o Nginx o pacote a usar é o php-fpm e para que o php passa ligações à Base de Dados é necessário o php-mysql.
sudo apt install php-fpm php-mysql
Configurar Nginx para usar o PHP
O Nginx no Debian 10 vem configurado, por norma, para servir documentos na pasta “/var/www/html“. Para múltiplas página seré melhor usar algo como “/var/www/o.meu.dominio“. No meu caso “/var/www/raulramos.pt“.
Comelar por criar a pasta de raiz para os documentos do domínio da forma seguinte:
sudo mkdir /var/www/raulramos.pt
Atribuir propriedade do pasta com a variável de ambiente $USER, que deve referenciar o utilizador atual do sistema:
sudo chown -R $USER:$USER /var/www/raulramos.pt
Criar um um novo ficheiro de configuração na pasta “nginx/sites-available” com o nome do domínio usado para criar a pasta de raiz dos documentos web. Aqui podemos usar um editor de ficheiros ao nosso gosto, o que me parece mais simples é o nano.
sudo nano /etc/nginx/sites-available/raulramos.pt
Aparecerá um ficheiro em branco e deve levar o código seguinte:
server {
listen 80;
listen [::]:80;
#na linha em baixo ficam os vários domínios a apontar para esta pasta (apagar esta linha)
server_name o.teu.dominio www.o.teu.dominio;
root /var/www/o.teu.dominio;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
}
}
No caso deste site em vez de “o.teu.dominio” ficaria “raulramos.pt“. Depois de adicionado e alterado o respetivo código, faz-se ctrl+x no teclado e <enter> para confirmar o caminho e nome do ficheiro.
Depois de criar o ficheiro a configuração ficará na pasta "/etc/nginx/sites-available/" mas nós queremos que a configuração fique na pasta "/etc/nginx/sites-enabled/", acho que o nome da pasta justifica ação.
sudo ln -s /etc/nginx/sites-available/o.teu.dominio /etc/nginx/sites-enabled/
O comando ln cria um link na pasta "/etc/nginx/sites-enabled/" para o caminho na pasta e ficheiro "/etc/nginx/sites-available/o.teu.sominio" e assim o ficheiro vai ser lido na próxima vez que as configurações forem carregadas . Para testar, fazer “sudo nginx -t“. Se tudo estiver ok e com sucesso podemos fazer o novo carregamento das configurações com:
sudo systemctl reload nginx
Criar ficheiro de teste:
nano /var/www/o.teu.dominio/info.php
Escrever no editor;
<?php
phpinfo();
Guardar com ctrl+x e <enter>. Testar num browser com o endereço http://o.teu.dominio/info.php. Se tudo correr bem o browser apresenta uma página da informação do php. Muito importante é remover o ficheiro depois de visualizar a informação.
Remover o ficheiro:
rm /var/www/o.teu.dominio/info.php
Próximos tutoriais: Criar um Certificado SSL para o Nginx no Debian 10 “buster”.
Até à próxima.