B E L M I T E C

Loading

Desenvolvimento Web com NGINX - MySql - PHP (NMP) e phpMyAdmin no macOS - Parte 1

Hello!, Saraiva aqui!

Neste guia, tento ajudar você a preparar um ambiente de Desenvolvimento no Mac OS usando a pilha de softwares NGINX (lê-se ENGINE-X), MySql e PHP. Resumida como NMP.

Esta é a primeira parte, vamos adiante!

Quando se trata de desenvolver localmente, há muitas opções para usuários de Mac, incluindo a maneira fictícia de MAMP e XAMPP. No entanto, para aqueles que querem uma pilha NMP (Nginx, MySql, PHP), não é tão simples. Neste tutorial, vou orientar você  sobre como instalá-los (além do popular phpMyAdmin). Estes passos foram testados no macOS Monterey 12.6.1.

Nesta primeira parte vamos instalar o NGINX.

Antes de começar, você deve garantir que tenha as Ferramentas de Linha de Comando instaladas no seu mac. Faz parte do XCode. Você deve tê-lo instalado e atualizado. 

1 - Caso ainda não tenha, instale as Ferramentas de Linha de Comando usando o código abaixo. Se já tiver, pule para o próximo passo.

xcode-select --install

2 - Para continuar, precisamos instalar o Homebrew, uma ferramenta CLI que nos ajuda a instalar pacotes de maneira mais fácil e prática no macOS. Você pode ler mais sobre o Homebrew neste link. Caso já o tenha instalado, basta seguir para o próximo passo.

Caso você ainda não tenha o Homebrew instalado, por favor siga o link acima e instale conforme orientação na própria página do Homebrew, é bem simples. Depois disso, por favor siga com este guia. A partir do próximo passo, já vou considerar que você tenha o Homebrew instalado.

3 - Instale o Nginx usando Homebrew:

brew tap homebrew nginx

brew install nginx

4 - Teste a Instalação

## Start Nginx
sudo nginx

## Check if Nginx is running on 8080 port
curl -IL http://127.0.0.1:8080

4.1 - A saída deve ser algo parecido com isto:

HTTP/1.1 200 OK
Server: nginx/1.12.1
Date: Sun, 18 Dec 2022 05:29:39 GMT
Content-Type: text/html
Content-Length: 138
Last-Modified: Sat, 11 Nov 2017 19:49:46 GMT
Connection: keep-alive
ETag: "5a07545a-8a"
Accept-Ranges: bytes

4.2 - Você também pode abrir no seu navegador esse endereço http://127.0.0.1:8080/ . Você deve acessar a página padrão do Nginx.

Se você obteve estes resultados, parabéns! Nginx instalado com sucesso!

Algumas considerações que considero importante antes de prosseguir...

Vamos fazer algumas configurações para hosts virtuais logo após a instalação do servidor web. Você pode fazer o mesmo usando as instruções a seguir.

Com estes passos, você saberá como criar domínios (hosts) locais adicionais para seus projetos. Por exemplo: http://meusite1.local ou http://meusite1, http://meusite2 etc.

  • Primeiro, prepare os diretórios antes de fazer a configuração:
mkdir -p /usr/local/etc/nginx/logs
mkdir -p /usr/local/etc/nginx/sites-available
mkdir -p /usr/local/etc/nginx/sites-enabled
sudo mkdir -p /var/www
sudo chown :staff /var/www
sudo chmod 775 /var/www

Explicando:

/usr/local/etc/nginx conterá os arquivos de configurações padrão do Nginx.

/var/www conterá todos os projetos locais. Neste diretório você deverá criar seus novos projetos. Por exemplo: os arquivos para http://meusite1 estarão localizados em /var/www/meusite1 etc.

  • Crie o conteúdo padrão para páginas da web a ser servido pelo Nginx. Crie o arquivo /var/www/localhost/index.html com o seguinte conteúdo:
<!DOCTYPE html>
<html>
	<head>
		<title>Localhost NGINX on macOS</title>
	</head>
	<body>
		<h1>Funcionou!</h1>
		<p>Bem-vindo ao Nginx no macOS Monterey</p>
             <p>Sucesso em seus projetos! Seus amigos da bsd.</p>
	</body>
</html>

Em outro guia, vou mostrar como criar outros domínios locais para seus projetos, mas se você prestar bastante atenção já irá perceber como fazer isso apenas ao configurar esse novo padrão para o Nginx local.

  • Edite o arquivo de configuração do Nginx localizado em /usr/local/etc/nginx/nginx.conf  com o comando abaixo e deixo-o parecido com este exemplo abaixo:
worker_processes  1;
 
error_log  /usr/local/etc/nginx/logs/error.log debug;
 
events {
    worker_connections  1024;
}
 
http {
    include             mime.types;
    default_type        application/octet-stream;
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    access_log  /usr/local/etc/nginx/logs/access.log  main;
 
    sendfile            on;
 
    keepalive_timeout   65;
 
    index index.html index.php;
 
    include /usr/local/etc/nginx/sites-enabled/*; 
}

  • Crie o arquivo /usr/local/etc/nginx/sites-available/default com o seguinte conteúdo:
server {
    listen       80;
    server_name  localhost;
    root       /var/www/localhost/;
 
    access_log /usr/local/etc/nginx/logs/default.access.log;
    error_log /usr/local/etc/nginx/logs/default.error.log;

    error_page  404     /404.html;
    error_page  403     /403.html;
}

  • Crie um link simbólico para a diretiva sites-avalable/default no diretório de controle de sites habilitados do Nginx. Onde default trata-se do arquivo que você criou no comando acima.
sudo ln -s /usr/local/etc/nginx/sites-available/default /usr/local/etc/nginx/sites-enabled/default

Salve os arquivos e reinicie o Nginx:

sudo nginx -s stop

sudo nginx

  • Verifique se o Nginx está funcionando normalmente e servindo seu novo site:
curl -IL http://localhost

A saída deve ser algo parecido com isto:

HTTP/1.1 200 OK
Server: nginx/1.12.1
Date: Sun, 18 Dec 2022 05:49:33 GMT
Content-Type: text/html
Content-Length: 138
Last-Modified: Sun, 18 Dec 2022 05:42:46 GMT
Connection: keep-alive
ETag: "5a07545a-8a"
Accept-Ranges: bytes

Você também pode abrir em seu navegador o endereço do site criado  http://localhost.

Tudo pronto! Até aqui, Nginx instalado e configurado. O próximo passo será sobre as configurações do Nginx com o PHP.

Qualquer dúvida ou dificuldade que você tiver, por favor me chame nos comentários do vídeo criado para este guia lá no YouTube. Terei o maior prazer em ajudar você!

Vamos adiante!


Você achou esse artigo útil?


Artigos relacionados