1. ¿Cómo se configuran los vhosts?
La "forma Lion" de hacerlo sería descomentar la siguiente línea en su httpd.conf.
#Include /private/etc/apache2/extra/httpd-vhosts.conf
Ahora puede editar /private/etc/apache2/extra/httpd-vhosts.conf y poner sus vhosts allí. Es una buena idea empezar con uno por defecto que coincida con todos los hosts no calificados, por ejemplo:
<VirtualHost *:80>
DocumentRoot /Library/WebServer/Documents
</VirtualHost>
A continuación, puede añadir cada vhost al mismo archivo, o puede establecer un sistema similar al de Debian incluyendo todos los archivos en un directorio específico a continuación, así:
Include /etc/apache2/sites-enabled/*
Ahora bien, no importa si se trata de un enlace simbólico a archivos que existen en otro lugar (sites-available) o si se trata de archivos reales. Personalmente, creo que sites-available es una exageración para una caja de desarrollo (y nunca quiero "deshabilitar" un vhost), así que simplemente creo un archivo para cada vhost directamente en sites-enabled o equivalente (de hecho, nombré el directorio /etc/apache/sites para evitar confusiones).
2. ¿Dónde colocas el código y el docroot de tus vhosts?
Mis sitios reales los pongo en /Users/username/Sites. Prefiero ponerlos bajo mi directorio personal para facilitar el acceso en el Finder, etc. Dicho esto, es bueno notar que este directorio está expuesto por defecto por el módulo userdir. Como no necesito el alojamiento de userdir, y voy a configurar webroots a continuación, lo he desactivado comentando la siguiente línea:
Include /private/etc/apache2/extra/httpd-userdir.conf
3. ¿Dónde se colocan los archivos de registro?
Los archivos de registro los mantengo igual (por ejemplo, /var/log/apache/*). De nuevo, para una caja de desarrollo local creo que los archivos de registro individuales para cada vhost son excesivos. No puedo hacer muchas cosas a la vez :) Si quieres archivos de registro separados, puedes por supuesto configurarlo así dentro de la directiva VirtualHost (por ejemplo /var/log/apache/mi.proyecto.dev-error.log).
4. ¿Dónde se coloca la configuración de la aplicación local?
¿A qué aplicaciones se refiere? Si se trata de aplicaciones web, las guardo junto con todos los demás archivos del proyecto. Dependiendo de su arquitectura, sus archivos de configuración no necesitan estar bajo su webroot si eso es un problema, de hecho normalmente mi webroot para cualquier proyecto dado será /Users/username/Sites/someproject/web, así que los archivos de configuración podrían estar en /Users/username/Sites/someproject/config sin exponerlos a través de Apache.
5. ¿Cómo se resuelve el servicio de nombres?
Lo más sencillo sería añadir cada nombre de host a /etc/hosts. Desafortunadamente, esto no hace carros salvajes. Si se siente cómodo con la configuración de un servidor DNS como bind, podría configurar uno localmente o en su red para resolver *.dev a 127.0.0.1 por ejemplo. La desventaja de hacer eso en tu red es, por supuesto, que dejará de funcionar en una ubicación diferente. Personalmente, uso /etc/hosts.