Virtual Hosts no Apache
Se você desenvolve há algum tempo com certeza já tem um servidor web instalado em seu pc(se não fica a dica de como instalar no Linux) e deve ter rodando vários sites em desenvolvimento através de uma URL no estilo http://localhost/site1/
, http://localhost/site2/
, etc. Todos estando dentro de uma pasta /var/www/
ou C:\wamp\www\
dependendo do seu Sistema Operacional, mas o Virtual Host do Apache nos permite ter vários sites rodando em nosso servidor em pastas em lugares diferentes e sendo acessados por uma URL de sua escolha como por exemplo http://www.site1.com.br
e seus arquivos estando armazenando em /home/site1/
por exemplo.
A configuração básica é bastante simples, no Debian Squeeze começamos criando um arquivo(pode ser o nome do dominio desejado mesmo) que irá conter a configuração do site na pasta /etc/apache2/sites-available/
/etc/apache2/sites-available/cliente1.com.br
<VirtualHost *:80>
DocumentRoot /home/cliente1/site/
ServerName www.cliente1.com.br
<Directory "/home/cliente1/site/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Sendo DocumentRoot a pasta onde os arquivos do site estarão e ServerName é a URL de acesso.
Agora criamos um link simbólico para este arquivo na pasta /etc/apache2/sites-enabled/
e reiniciamos o apache.
ln -s /etc/apache2/sites-available/cliente1.com.br /etc/apache2/sites-enabled/cliente1.com.br
/etc/init.d/apache2 restart
Agora o Virtual Host(vhost) está configurado, mas se você tentar acessar o domínio www.cliente1.com.br
o seu S.O. tentará resolver o DNS através do servidor de DNS configurado, se o domínio existir será mostrado o site que esta na hospedagem e não na sua máquina, então temos que configurar o computador que irá acessar para associar ao domínio o ip do seu servidor e não tentar resolver o DNS por meios normais, isto é feito através do arquivo hosts, no linux ele é encontrado em /etc/hosts
e acrescentamos a seguinte linha:
127.0.0.1 www.cliente1.com.br
Pronto agora podemos acessar através do navegador
http://www.cliente1.com.br
e ele irá abrir o site do nosso servidor local, só não se esqueça de comentar esta linha quando quiser acessar o site publicado, certo!
Este recurso é uma mão na roda quando trabalhamos com um gerenciador de conteúdo(como o wordpress) que quando é inserida uma imagem por exemplo utiliza o caminho absoluto o que causa alguns problemas quando temos que baixar todo o site para nosso computador para fazer alguma alteração mais profunda(lembre-se não construa aviões em pleno voo) como mudar o template ou fazer alguns teste em plugins e módulos, já que temos que mexer no banco de dados, no .htacess e em um monte de lugares diferentes.
Bom espero que tenha sido útil, T++ !