Você está na página 1de 3

Object 2

Object 1

Virtual Host com Apache


Virtual Host é a capacidade de hospedar mais do que um web site numa única máquina, com um
endereço IP ou mais. Nesse artigo aprenderemos os fundamentos básicos para se configurar virtual
hosts no servidor.
Vou explicar como configurar vários domínios em uma única máquina. Vou levar em consideração
que você está em um máquina Linux com o Apache corretamente instalado.

Tudo bem, mão na massa!

Vamos usar como exemplo dois endereços diferentes:


• www.meusite1.com
• www.meusite2.org

Vamos modificar dois arquivos:


• /etc/hosts
• httpd.conf1

1: arquivo normalmente localizado em /usr/local/apache2/conf/, /etc/httpd/conf/ ou


/etc/apache/conf/.

Abra o arquivo /etc/hosts e acrescente as seguintes linhas:


127.0.0.1 meusite1 www.meusite1.com meusite1
127.0.0.1 meusite2 www.meusite2.org meusite2

Abra o httpd.conf e no final do arquivo, acrescente o seguinte:


NameVirtualHost *

<VirtualHost *>
ServerName localhost
DocumentRoot /usr/local/apache2/htdocs
</VirtualHost>

<VirtualHost *>
ServerName www.meusite1.com
DocumentRoot /usr/local/apache2/htdocs/meusite1
</VirtualHost>

<VirtualHost *>
ServerName www.meusite2.org
DocumentRoot /usr/local/apache2/htdocs/meusite2
</VirtualHost>

OBS: Você deve ter os diretórios meusite1 e meusite2 no seu DocumentRoot. Preste atenção nas
linhas DocumentRoot. Se o seu DocumentRoot está em /var/www/html, você deve modificar a linha
para "DocumentRoot /var/www/http/meusite1".

Solucionando problemas
Em alguns casos, pode ser que quando for requisitar o endereço, o navegador liste o conteúdo do
diretório ao invés de mostrar o index.html por exemplo. Para resolver isto, mude para:
NameVirtualHost *

<VirtualHost *>
ServerName localhost
DocumentRoot /usr/local/apache2/htdocs
DirectoryIndex /index.html
</VirtualHost>

<VirtualHost *>
ServerName www.meusite1.com
DocumentRoot /usr/local/apache2/htdocs/meusite1
DirectoryIndex /index.html
</VirtualHost>

<VirtualHost *>
ServerName www.meusite2.org
DocumentRoot /usr/local/apache2/htdocs/meusite2
DirectoryIndex /index.html
</VirtualHost>

Observe que foram adicionadas as linhas DirectoryIndex, que apontam para o index.html. Isto quer
dizer que você não precisar requisitar www.meusite1.com/index.html para ver o conteúdo de
index.html, simplesmente requisitará www.meusite1.com e verá seu conteúdo.

Reinicie o servidor Apache com o comando:

# apachectl restart
ou
# /usr/local/apache2/bin/apachectl restart
ou
# /etc/init.d/httpd restart

Vai depender da distribuição que você está usando.

Abra o navegador, digites os endereços criados e pronto!