Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt no Debian 10 Buster (LNPP)


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. Também estarei instalando o banco de dados PostgreSQL e phpPgAdmin como gerenciador web.

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!

PostgreSQL

Torne-se o usuário postgres, para poder criar o banco de dados.

Execute para entrar no terminal de comandos do banco.

Para definir a senha do usuário postgres e instalar o adminpack.

Ajustes no pg_hba.conf, assim toda alteração será necessaria validação do postgres com a senha que acabou de definir.

Altere as seguintes linhas:

Para:


Reinicie o postgres

Volte para o postgres

Agora para toda ação será necessário autenticar.

Para demonstração irei criar um banco/usuário teste, não esqueça de alterar a senha.

Agora crie o banco e vincule ao usuário.

Verifique se o mesmo foi criado.

Acessamos agora o bd teste.

Vamos fazer uma “brincadeira” só para testar, criaremos uma tabela e inseriremos dados nela.

Se deseja remover o banco/usuário teste.

Volte para root

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 reinicie o serviço:

phpPgAdmin

O phppgadmin até pode ser instalado via apt, porém seu empacotamento esta na versão 5, vou baixar a versão mais recente direta do https://github.com/phppgadmin/phppgadmin/releases hoje (abril 2021) na versão 7.13.0

Ajustes no config.inc.php

Localize as linhas e ajuste:

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 phppgadmin acessível apenas de alguns endereços IPs (RECOMENDO) 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.

Verifique se não tem nenhum erro e reinicie o serviço:

Basta acessar http://IP-SERVIDOR/phppgadmin

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.

Dica, se desejar desativar o TLS1.0 e TLS1.1 após criar um certificado um arquivo é criado /etc/letsencrypt/options-ssl-apache.conf, então edite e inclua no SSLProtocol TLSv1 -TLSv1.1

Ficando

Reinicie o Apache:

Para testar acesse: https://www.cdn77.com/tls-test/

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.

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...

5 Resultados

  1. Vicente Filho disse:

    A fim de ajudar aos que estão tendo problemas na hora de testar o php, Lembre-se que na ultima update, agora não é mais a Versão 7.3
    e sim 7.4.
    então onde você ver os exemplos do Rudmiar ai no passo a passo, lembre-se de subistituir. por exemplo, na linha:

    nano /etc/nginx/sites-available/default
    substitua: fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    por: fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;

    e no restart do serviço:
    systemctl restart nginx php7.3-fpm.service

    substitua por:
    systemctl restart nginx php7.4-fpm.service

    se tiver mais, altere conforme for observando a diferença entre php7.3 por php7.4
    Beleza?
    espero ter ajudado aos demais

  2. Léo de Oliveira Camargo disse:

    Como redireciono um dominio para a uma porta diferente, EX tenho tenho dois servidores web no mesmo server, um na porta 80 outro na 8080?

  3. Maurício Venzi disse:

    Top Rudimar!

    Arruma está faltando um “n” no final do comando “http://IP-SERVIDOR/phppgadmi”

  1. 16 de abril de 2021

    […] Debian 10 instalação limpa * Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt (Opcional phpPgAdmin + […]

Deixe um comentário

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