Criando VirtualHosts no Apache para organizar seus Projetos
Se você trabalho com dezenas de projetos web, e utiliza o método mais que arcaico, para desenvolvimento, usando uma pastinha no DocumentRoot de seu apache, está na hora de mudar, e criar dominios virtuais e locais para seus projetos, inclusive cada virtualhost pode vir a adotar configurações independentes, sem afetar os outros.
Os procedimentos aqui forão realizando num apache 2.2.8, mais em qualquer Apache deve ser suportada.
Vamos lá, vamos dizer que seus projetos estão em ‘/home/alexm/Projetos’ e lá dentro tenho as pastas, cada uma com um projeto, como por exemplo vamos adotar os seguintes projetos como exemplo:
www.meuprojeto1.com.br
intranet.empresa.com
Edite seu arquivo /etc/hosts e adicione as seguintes linhas:
127.0.0.1 www.meuprojeto1.com.br.local 127.0.0.1 intranet.empersa.com.local
Pronto, se você der um ping para intranet.empresa.com.local, o mesmo deverá estar respondendo no IP 127.0.0.1
Agora vamos a configuração do apache. Adicione as seguintes linhas no httpd.conf:
Listen 80 NameVirtualHost *:80 #Esta entrada ja deve exisitir em seu apache, e deve ser a primeira, pois será o virtualhost padrão ServerName localhost DocumentRoot /var/www/htdocs #agora vem os virtualhosts para cada projeto, #antes uma definição Directory, para permitir acesso a pasta /home/alexm/Projetos Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all #agora os virtualhosts servername www.meuprojeto1.com.br.local documentroot /home/alexm/Projetos/www.meuprojeto1.com.br </Virtualhost> servername intranet.empersa.com.br.local documentroot /home/alexm/Projetos/intranet.empersa.com.br.local
Agora reinicie seu apache, e aponte o browser para http://intranet.empersa.com.br.local e para
http://www.meuprojeto1.com.br.local e você deverá ver cada projeto em um host virtual único.
Como esse tipo de configuração você poderá configurar arquivos de logs independetes, do apache,
assim como flags do php.ini únicas para cada vhosts, usando php_flag e php_admin_flag, nas entradas . Mais informações sobre configurações php no apache aqui
Bom é isso, outra hora, posto uns scripts que tenho para automatizar o processo.
Abraços