
Nestes últimos tempos devido aos vários projetos em andamento, tive a necessidade de criar vários domínios virtuais em uma unica instalação do Apache. Após, pesquisas e alguns testes sem sucesso cheguei a solução que apresento no artigo. Abaixo está documentado como configurar um virtual host no Apache em Windows, de forma rápida e simples.
Se alguém se perguntou por que Windows? Pois, não são poucos os desenvolvedores web que utilizam o Windows como plataforma.
Configurando um virtual host no Apache
Antes de configurar seu virtual host no Apache você precisa:
- Servidor Web Apache 2.x
- Sistema operacional Windows, neste tutorial testado em Windows XP, Windows 7 (update: estou usando no Windows 10)
- Conhecer um pouco sobre o httpd.conf, arquivo utilizado para configurar o Apache ou pelo saber usar o comando Ctrl + F em seu editor de texto favorito.
Para criar, configurar ou adicionar um domínio virtual (virtual host) ao seu servidor Apache é necessário editar o arquivo httpd.conf. Este arquivo é responsável pela configuração do servidor web Apache. E também o arquivo host no Windows. Toda vez que acessamos um site, independentemente do navegador, primeiro o sistema operacional procura a URL em localhost (dentro do computador), após isso percorre os diversos roteadores mundo a fora. Então o que precisamos fazer é adicionar o domínio desejado ao sistema operacional e configurar o Apache para servir este site toda vez que este nome de domínio for solicitado no navegador.
1º Passo – O arquivo httpd.conf
Primeiramente procure em seu arquivo httpd.conf (arquivo de configuração do Apache) a seguinte linha:
#NameVirtual Host *:80
Por padrão esta linha vem comentada abaixo dela adicione:
NameVirtualHost localhost:80
<VirtualHost 127.0.0.1> ServerAdmin admin@localhost DocumentRoot "C:/Apache/htdocs" ServerName localhost ErrorLog logs/localhost_error.log CustomLog logs/localhost_access.log common </VirtualHost>
Assim você informa para responder por domínios virtuais pela porta 80, porta responsável pela comunicação outros sites na internet. E também configura o dominio padrão, em nosso caso localhost.
2º Passo – Criando / Adicionando virtual host
Ainda no mesmo arquivo você irá adicionar as seguintes linhas e sempre que desejar um novo criar virtual host em seu servidor Apache.
<VirtualHost 127.0.0.1> DocumentRoot "C:/pasta-dos-sites/pasta-do-seu-site" ServerName nome-do-dominio ServerAlias *.nome-do-dominio <Directory "C:/pasta-dos-sites/pasta-do-seu-site"> Options All Includes Indexes </Directory> </VirtualHost>
Nas linhas DocumentRoot e <Directory> subtitua o texto entre aspas pelo endereço da pasta do site, durante minhas pesquisas alguns estava tendo problemas devido a barra, portanto de preferência pela barra comum.
Nos campos ServerName e ServerAlias substitua nome-do-dominio pelo nome desejado procure evitar domínios existentes na internet, pois impossibilita você acessar estes sites de forma convencional, tenha por opção apenas o nome do cliente, por exemplo.
3º Passo – Arquivo Hosts do Windows
Agora devemos configurar o arquivo de host, lembrando que isto é valido para configuração de domínio virtual Windows. Sinceramente não efetuei testes em versões mais antigas do Windows, caso alguém realize testes em outras versões deixe a dica nos comentário que faço um update no post. Utilizando este arquivo dispensa o uso de instalação de servidores DNS.
Abra o arquivo host localizado em C:\WINDOWS\system32\drivers\etc\
No fim deste arquivo adicione o nome do domínio.
127.0.0.1 nome-do-dominio
4º Passo – Para Finalizar
Reinicie o servidor Apache e pronto basta digitar o nome que você cadastrou anteriormente na URL do seu navegador para testar.
Agora você já sabe como instalar e configurar um virtual host no servidor Apache em Windows esta dada a dica qualquer leitor que tiver algo a acrescentar deixe nos comentários.
[UPDATE 27/02/2013] – Você pode conhecer mais sobre este assunto aqui:
Eu estou acessando o virtual host mas tá abrindo a página do host principal, o que eu faço? eu coloquei o local de destino do virtual host para um diretório diferente do host principal mas ainda continua o problema.
Olá, sei q o post é antigo mas estou me aprofundando nessa parte agora e achei seu tutorial.
O meu problema está em, quando altero alguma informação dentro do arquivo httpd.conf e peço pra reiniciar o servidor ele não reinicia.
Fix exatamento como descrito acima. o que posso estar fazendo de errado ?
Libério Jr.
Remova a linha , e o servidor vai iniciar normalmente.
Directory "C:/pasta-dos-sites/pasta-do-seu-site"
Estou tentando configurar em uma porta diferente da padrão mas não funciona de jeito nenhum. Estou utilizando a porta 8080.