Servidor WEB NGINX + PHP + MariaDB + phpMyAdmin + Letsencrypt no Debian 10 Buster (LNMP)


Neste tutorial vamos configurar um servidor web com NGINX (lê-se “engine x”), o concorrente do Apache. NGINX é um servidor web (HTTP e IMAP/POP3/Proxy) rápido, leve e com inúmeras possibilidades de configuração para melhor performance. O Apache, sem dúvidas, é o servidor web mais popular. No entanto, o NGINX a cada ano ganha mais popularidade e está sendo a preferência dos novos projetos.

Distribuição utilizada: Debian 10 Stretch / Instalação Limpa

NGINX

https://www.nginx.com

Acesse agora em seu navegador http://IP-SERVIDOR/

Se você acessar um diretório que não existe um erro dizendo que não existe, e junto informações que não é legal aparecer.

Vamos remover assinatura do nginx onde ele exibe a versão do mesmo. Ninguém precisa saber! Correto?

Pronto nosso NGINX está rodando!

MARIADB

MariaDB para quem ainda não sabe é um fork do MySQL, criado pelo próprio fundador do projeto MySQL após sua aquisição pela Oracle.

Por segurança vamos setar uma senha do

Não use a mesma senha do seu servidor, crie uma nova totalmente diferente! Dica acesse https://senhasegura.remontti.com.br/ e gere uma!

Agora quando for acessar o mariadb será necessário informar a senha.

PHP7

Incluirei algumas extensões do PHP que são normalmente utilizada também na instalação.

Agora vamos fazer a “integração” do PHP com o NGINX. Moveremos o arquivo defaul.

Crie um novo:

Ajuste:

Teste a configuração se não tem nada errado e restart os serviços:

Vamos criar um arquivo em PHP para testa se nosso NGINX está interpretando o PHP.

Acesse em seu navegador http://IP-SERVIDOR/teste.php

🙂 Nosso servidor WEB com PHP está funcionando!

Exemplo para multiplos domínios/subdomínios

Neste ex: vou representar o sub1.remontti.com.br

Neste ex: vou representar o sub2.remontti.com.br e sub3.remontti.com.br

Link os arquivos no diretório “/etc/nginx/sites-available” que será carregado as novas configurações

Crie os diretórios referente a cada server_name.

Verifique se não tem nenhum erro e restart:

phpMyAdmin

Cade ele do repositório? O PHPMyAdmin não está mais disponível como pacote .deb no Debian 10. Fazendo um pesquisa o motivo é que o “pessoal” que faz empacotamento não tem uma versão estável. https://security-tracker.debian.org/tracker/CVE-2018-19968
Desta forma debian “obriga” com que o usuário instale-o a partir da fonte. https://www.phpmyadmin.net/downloads/

Para nosso phpmyadmin funcionar corretamente precisamos criar um banco de dados para ele, e por segurança vamos tb criar um usuário só para ele.

Não esqueça de alterar “SUA_SENHA”.

Agora vamos importar as tabelas e configura-lo.

Descomente/Adicone/Altere:

Para torna-lo acessível altere o arquivo de configuração do seu NGINX, no exemplo vou colocar no arquivo default, mas você poderia estar configurando em seus domínios.

Adicione as linhas destacadas:

Se deseja tonar o phpmyadmin acessivel apenas de alguns endereços IPs basta descomentar as linhas, e incluir seus prefixos. O error_page é para que quando a o acessante levar um proibido seja direcionado para um site.

Basta acessar http://IP-SERVIDOR/phpmyadmin

LETSENCRYPT

Criando certificado valido para nossos domínios.

Tenha seu(s) domínio(s) configurado em /etc/nginx/sites-enabled/

Retorno do questionário:

Você pode também criar o certificado diretamente para um domínio.

Não esqueça de colocar no seu cron para ele renovar o certificado, pois a cada 90 ele expira. Neste exemplo todo dia primeiro tento renovar.

Caso não renovar apenas rode o comando letsencrypt novamente.

Bônus: Modelo para WordPress

Como rewrite no NGINX é um pouco diferente vou deixar um ex.:

Gostou?

Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!

Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.

Fontes: https://docs.nginx.com/
https://docs.nginx.com/nginx/admin-guide/web-server/web-server/

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

1 Resultado

  1. Thomas Lage disse:

    Bom dia, Remontti, tudo bem?
    Muito bom o tutotial, estou tentando aprender o NGINX para ver se mudo do Apache para ele.
    Em relação ao WordPress, eu fiz essa reescrita como menciona no artigo, mas aqui quando coloco como nome do post ele da que a página não foi encontrada. O que pode ser?

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *