VirtualHosts dinâmicos abrangentes para todos os seus sites de desenvolvimento

Gosto de manter todos os sites nos quais estou trabalhando ~/Sites/, cada um em uma pasta com o nome do repositório git de onde vêm. Eu costumava ter um script bash auxiliar que me permitia anexar uma nova entrada ao meu arquivo httpd-vhosts.conf toda vez que adicionava um novo repositório. Em vez disso, podemos configurar um caractere curinga para que nem mesmo tenhamos que fazer isso.

Com este arquivo, digitar foo.dev em seu navegador deve fornecer o índice interno, /home/username/Sites/foo/public_htmlpor exemplo. Lembre-se de que você ainda precisará configurar um servidor dns simples como dnsmasq (wildcard dns + wildcard vhost! Incrível!) Ou adicionar cada nome de host ao seu arquivo hosts para acessá-los.

# Catch all requests.
NameVirtualHost *

# Enable wildcard catching of domain
# names by vhost directive.
UseCanonicalName Off

<VirtualHost *>
# Catch only requests to .dev domains.
ServerName dev
ServerAlias *.dev

# Log everything so its sortable
# by domain name.
# LogLevel debug
LogFormat "%V %h %t "%r"" %s %b"" vcommon
CustomLog /$HOMEDIR/$USER/Sites/.log/access_log vcommon
ErrorLog /$HOMEDIR/$USER/Sites/.log/error_log

# Use the first part of the domain name
# as folder name to look in.
VirtualDocumentRoot /$HOMEDIR/$USER/Sites/%1/public_html

# Make php set the DOCUMENT_ROOT correctly
# since apache doesn't set it correctly to the
# virtual one.
#
# See http://jbenner.net/blog/quick-tip-get-proper-document-root-when-using-mod-vhost-alias
php_admin_value auto_prepend_file
/$HOMEDIR/$USER/Sites/.conf/setdocroot.php

</VirtualHost>

Certifique-se de que o mod vhost alias esteja habilitado na instalação do apache (padrão no apache do Mac) e substitua $ HOMEDIR e $ USER com as strings apropriadas para seu usuário e plataforma Unix (por exemplo