CURSO RENDA EXTRA COM PHP + CODEIGNITER 4 #03 - CRIE UMA PLATAFORMA EAD - DOMÍNIOS LOCAIS COM NGINX + OPENSSL
Olá, Saraiva aqui!
Para avançar com o nosso ambiente de desenvolvimento, vamos entender como criar vários domínios locais usando o servidor NGINX, e claro, vamos criar o dominio local que usaremos para acessar nossa plataforma EAD.
Para isso, basta seguir os passos deste guia abaixo onde explico como criar um novo dominio local com NGINX e um certificado ssl para esse domínio usando o OpenSSL.
Seguindo este método você poderá criar quantos domínios precisar, em seu servidor local. Bastando subistituir, nos comandos, o domínio atual pelo novo que estará criando.
Em nosso curso usaremos o domínio abaixo para ser o usado em nosso site local para a plataforma ead que criaremos:
https://plataformaead.local
Nota: Se você tentar acessar esse domínio publicamente, seu navegador não encontrará pois ele só existirá em meu servidor local. Caso você decida criar igual a mim, apenas vai existir em seu servidor local também.
Abra o terminlal e siga os passos abaixo para criar seu novo dominio no seu servidor:
Passo 1 - Cadastre seu novo domínio no servidor localhost com o comando abaixo:
sudo nano /etc/hosts
Após clicar em Enter, seu terminal mostrará uma nova tela, prossiga conforme o exemplo abaixo, copie e cole logo abaixo do ultimo registro, lembrando de alterar para o dominio escolhido por você, caso não estejas usando o mesmo que eu.
127.0.0.1 plataformaead.local
Isso fará com que o servidor reconheça seu domínio local. Para salvar, use as teclas CTRL + X, depois clique em S e ENTER em seguida para confirmar e salvar.
Passo 2 - Criando diretório para o domínio:
O comando abaixo cria uma pasta/diretório no caminho padrão do Ubuntu para servir aquivos web, /var/www/. Lembre-se de modificar o comando de acordo com o domínio escolhido por você.
sudo mkdir -p /var/www/plataformaead.local/html
Após rodar esse comando, o diretório onde os arquivos da nossa plataforma serão colocados está pronto. Agora vamos criar um bloco do servidor NGINX para que ele possa servir nosso site.
Passo 3 - Aplicando acesso ao diretório criado para o usuário atual:
Use os comandos abaixo para garantir que o seu usuário atual terá acesso irrestrito ao diretório criado.
sudo chown -R $USER:$USER /var/www/plataformaead.local/html
Com o comando abaixo você dá permissões necessárias de escrita e leitura aos arquivos e pastas no diretório criado:
sudo chmod -R 755 /var/www/plataformaead.local/html
Feito isso, vamos agora trabalhar com o NGINX.
Passo 4 - Criando bloco do servidor NGINX (Lê-se Engine-X):
Como esta é a primeira vez que criamos um bloco de servidor, fique atento às configurações a seguir. Use a sequência de comandos abaixo para concluir esta etapa, lembrando de fazer as alterações necessárias conforme o seu caso:
Crie o bloco de servidor com este comando:
sudo nano /etc/nginx/sites-available/plataformaead.local
Use a estrutura de códigos abaixo para configurar o arquivo criado. Copie e cole, ctrl +c e ctrl + shift + v:
server {
listen 443 ssl;
server_name plataformaead.local;
root /var/www/plataformaead.local/html;
index index.html index.php;
client_max_body_size 2048M;
ssl_certificate /etc/nginx/ssl/plataformaead.local/server.crt;
ssl_certificate_key /etc/nginx/ssl/plataformaead.local/server.key;
# set expiration of assets to MAX for caching
location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
expires max;
log_not_found off;
}
location / {
#Check if a file or directory index file exists, else route it to index.php.
try_files $uri $uri/ /index.php;
}
location /backups {
deny all;
return 404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Após fazer as alterações necesárias, salve o arquivo usando CTRL + X, em seguida S e depois ENTER para salvar e sair da tela de edição.
Passo 5 - Instalando certificado Auto assinado com OpenSSl e NGINX para o domínio criado:
Note que no código acima, temos a diretiva: listen 443 ssl; isso siginifica que o NGINX tentará servir nosso domínio em uma conexão segura usando certificado ssl. Porém, anda não configuramos isso. Então se tentassemos acessar nosso domínio agora, não iria funcionar.
Primeiro vamos verificar a versão atual do OpenSSL em nosso sistema. Use comando abaixo:
sudo openssl version
NOTA: Se você receber um erro ao rodar o comando acima, significa que o OpenSSL não está instalado em seu sistema. Para corrigir isso, basta seguir este guia que preparei para te ajudar a instalar o OpenSSL no ubuntu. Instale o OpenSSL conforme o guia deste link e então retorne para prosseguir com esta aula.
Se você não recebeu um erro, e sim a sua versão atual do OpenSSL, então vamos adiante!
Agora vamos configurar nosso certificado ssl com os comandos a seguir.
Primeiro crie o diretório onde o certificado será gerado, lembre de altarear para o seu dominio local:
sudo mkdir -p /etc/nginx/ssl/plataformaead.local
Em seguida, acesse o diretório criado com o comando abaixo:
cd /etc/nginx/ssl/plataformaead.local
Agora, desde que você esteja acessando o diretório criado para conter o certificado, vamos gerar o certificado auto assinado com o comando abaixo. Você deverá informar uma senha neste passo (pass phrase). Informe uma senha fácil. No meu caso, vou informar a senha 12345:
sudo openssl genrsa -des3 -out server.key 2048
No próximo comando você deverá preencher algumas informações necessárias, fique atendo ao seguinte campo: Common Name (e.g. server FQDN or YOUR name) []:plataformaead.local - informe neste campo o seu domínio em questão.
Outra informação importante: Ao final deste passo, o sistema irá solcitar duas informações. A primeira é uma senha, ESTA SENHA DEVE SER APAGADO A SEGUIR E ELA DEVE SER DIFERENTE DA SENHA CRIADA NO PASSO ANTERIOR então insira uma senha fraca. No meu caso vou colocar 7777. Na segunda informação, insira qualquer coisa.
Comando:
sudo openssl req -new -key server.key -out server.csr
Nós iremos apagar a senha gerada neste comando em instantes. Se você não apagar esta senha gerada neste comando, toda vez que reiniciar o servidor NGINX terás que usar essa senha, e você não vai querer isso!
Agora, vamos gerar mais um arquivo necessário para o funcionamento do certificado com o comando abaixo:
sudo cp server.key server.key.org
Feito isso, vamos apagar a senha fraca gerada ao criarmos o CSR. Fique atento pois você vai precisar informar a senha principal gerada no primeito passo onde criamos o certificado, no meu caso é a senha 12345.
sudo openssl rsa -in server.key.org -out server.key
Feito isso, agora assine o Certificado e teremos concluído:
sudo openssl x509 -req -days 1825 -in server.csr -signkey server.key -out server.crt
O comando acima assina o certificado com validade para 5 anos, definidos na diretiva; -days 1825. Fique a vontade para colocar ali, 365 dias para um ano ou quantos dias você quiser.
Nosso certificado agora está gerado e pronto para uso. Vamos concluir!
Passo 6 - Testando as configurações e ativando o domínio local
Use o comando abaixo para testar se todas as configurações do servidor NGINX estão corretas:
sudo nginx -t
Se sua saída for igual à descrita abaixo, você configurou tudo corretamente. Então siga para o próximo comando:
Habilite o domínio criado usando o comando abaixo:
sudo ln -s /etc/nginx/sites-available/plataformaead.local /etc/nginx/sites-enabled/
Agora reinicie o servidor NGINX para que seu domínio passe a ser servido. Use o comando abaixo para reiniciar:
sudo systemctl restart nginx
Ainda não temos nenhum arquivo no diretório deste dominio. Então vamos criar um simples index.html e acessar o dominio para verificarmos se está tudo funcionando:
Siga as etapas no código abaixo:
// 1 - Use esse comando em seu terminal
sudo nano /var/www/plataformaead.local/html/index.html
// 2 - copie e cole este trecho de código html
<h1>Bem vindo ao domínio para:</h1>
<h2>plataformaead.local</h2>
// Se preferir, use este código abaixo:
<h1>Olá mundo!</h1>
// Ou este código abaixo:
<h1>Hello World!</h1>
Quando acabr use CTRL + X depois S e ENTER para salvar o arqivo.
Agora bastar acessar em seu navegador local o seu dominio:
https://plataformaead.local
Note que o navegador vai dizer que o domini não é seguro, isso já era eperado pois nosso certificado não é autenticado por nenuma autoridade certificadora. Isso não nos atrapalha e nem interessa aqui, pois o objetivo é termos um certificado ssl local para fins de testes e nossa aplicação.
Então clique em AVANÇADO e prosiga para cessar o site;
Parabéns! Você acaba de dar mais um grande passo no universo do NGINX. A boa notícia é que sempre que você precisar de um novo dominio local, ou bloco de servidor enfim, basta repetir esses passos com seu novo domínio e tudo vai funcionar bem!
🔥 Deixo aqui uma ótima dica pra você ir além do PHP e se tornar um Verdadeiro Profissional Full-Stack. Se destaque no mercado e seja reconhecido. 🥇
🔥 Você também pode gostar do universo dos games, esta dica vai te ajudar a criar seus próprios jogos usando as melhores tecnologias do mercado.
Em nossa proxima aula, vamos instalar o phpMyAdmin para gerenciar nossos bancos de dados.
Bons estudos e vamos adiante!
Artigos relacionados
-
CURSO RENDA EXTRA COM PHP + CODEIGNITER 4 #01 - PLATAFORMA EAD - UBUNTU 22.4 & VIRTUALBOX
Apresentação + Instalação do Ubuntu 22.4 no VirtualBox. Olá, Saraiva aqui!Nesta aula vamos iniciar a preparação do... -
CURSO RENDA EXTRA COM PHP + CODEIGNITER 4 #02 - PLATAFORMA EAD - INSTALE NGINX, PHP8.1, MYSQL - PILHA LEMP
Olá, Saraiva aqui!Nesta segunda aula do Curso de Renda extra com PHP + CodeIgniter vamos começar a preparar nosso ambiente de desenvolviment... -
CURSO RENDA EXTRA COM PHP + CODEIGNITER 4 #04 - CRIE UMA PLATAFORMA EAD - INSTALANDO O PHPMYADMIN COM NGINX
Olá, Saraiva aqui!Chegamos na aula #04 do nosso curso de Renda Extra com PHP + CodeIgniter para criarmos uma plataforma ead e vender a clientes. ...
Você achou esse artigo útil?