28 de março de 2021 - Frederico Marinho

Como usar Virtual Hosts no Apache do MacOS

Estou impressionado o quanto a configuração do servidor web no MacOS BigSur é simples, e a configuração do Virtual Hosts no Apache é ainda mais fácil de fazer.\

Se você não está familiarizado com termo, eu criei um post anteriormente explicando como fazer essa configuração no Ubuntu e detalhe um pouco mais sobre essa funcionalidade. Veja lá.

Apesar de não ser necessário para o desenvolvimento, eu sinceramente não consigo trabalhar sem VHosts, fica muito mais profissional e evita vários problemas quando o projeto for colocado em um servidor de produção.

1. Adicionando a configuração

A primeira coisa é habilitar a configuração do VirtualHost no arquivo principal de configuração do Apache.

vi /etc/apache2/httpd.conf

Descomentar a seguinte linha:

Include /private/etc/apache2/extra/httpd-vhosts.conf

Agora o Apache vai carregar esse arquivo.

2. Adicionar um Virtual Host

Vamos configurar o arquivo específico de Virtual Hosts no Apache:

vi /etc/apache2/extra/httpd-vhosts.conf

Aqui está um exemplo do arquivo de configuração que criei:

<VirtualHost *:80>
    DocumentRoot "/Library/WebServer/Documents"
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "/Library/WebServer/Documents/nomedoprojeto.dev/public_html"
    ServerName nomedoprojeto.dev
    ErrorLog "/private/var/log/apache2/nomedoprojeto.dev-error_log"
    CustomLog "/private/var/log/apache2/nomedoprojeto.dev-access_log" common
    <Directory "/Library/WebServer/Documents/nomedoprojeto.dev">
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Salve o arquivo.

A primeira configuração de Virtual Host aponta para o DocumentRoot em /Library/WebServer/Documents, importante por se comportar como a configuração padrão do Apache, usada quando nenhuma outra responder.

A segunda configuração aponta para a pasta do projeto, localizada em /Library/WebServer/Documents/nomedoprojeto.dev/public_html, onde devem estar os arquivos PHP, HTML e Javascript, e pode ser acessada pelo endereço http://nomedoprojeto.dev (ainda não vai funcionar, veja abaixo a configuração do arquivo Hosts).

Obs.: Eu usei a extensão .dev, para diferenciar de outras extensões reais e para me lembrar que é um projeto em desenvolvimento. Você pode usar qualquer extensão que desejar.

Reinicie o apache.

sudo apachectl restart

3. Configurando o arquivo Hosts

Para acessar de fato o projeto no endereço http://nomedoprojeto.dev, é preciso adicionar esse endereço apontando para o IP local no arquivo hosts. Faça:

sudo vi /etc/hosts

Adicione no final do arquivo a linha abaixo:

127.0.0.1               nomedoprojeto.dev

Para garantir uma atualização do cache, execute o comando abaixo:

dscacheutil -flushcache

Agora poderá acessar http://nomedoprojeto.dev no navegador.

4. Sobre permissões

Você provavelmente vai receber uma mensagem de erro 403 Forbidden. Isso é devido a permissões na pasta do projeto.

Problema de permissão na pasta do projeto

Coisa fácil de resolver. Execute no terminal:

sudo chmod -R 755 /Library/WebServer/Documents/nomedoprojeto.dev

Assim você garante, com o argumento -R (que quer dizer recursivo), que todas os arquivos das subpastas também recebam essa permissão.

Obs.: Existem várias formas de resolver problemas de permissão, essa pode não ser a melhor, mas é uma das mais fáceis.

Concluindo

A configuração do seu Virtual Host do Apache no MacOS está finalizada.

Para adicionar novos projetos, é preciso fazer todo o processo novamente a partir do segundo passo, adicionando um bloco <VirtualHost *:80> … </VirtualHost> no arquivo httpd-vhosts.conf e uma nova linha no arquivo /etc/hosts para cada novo endereço a ser utilizado.

0

Desenvolvimento web / MacOS macos bigsur / virtualhosts /

Deixe um comentário

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