¿Cómo configurar los hosts virtuales de Apache?

Configurando Apache para el desarrollo local en Lion He logrado darme count de esto:

  • /private/etc/apache2/ y /etc/apache2/ están enlazados simbólicamente
  • /etc/apache2/httpd.conf es autoritativo
  • httpd.conf basa en los confs en extra
  • original es una pista falsa de origen desconocido – presumiblemente Apache

Procedente de Debian, me he acostumbrado a manejar hosts virtuales de Apache agregando files a /etc/apache2/sites-available/ y vinculándolos a /etc/apache2/sites-enabled/ . Pero eso parece ser la reserva especial de los pueblos 'Lion Server'. Probablemente sea relativamente trivial configurarlo de esa manera, pero me gustaría saber qué han hecho otras personas;

  1. ¿Cómo configuras tus fantasmas?
  2. ¿Dónde colocas el código y docroot para tus fantasmas?
  3. ¿Dónde colocas los files de logging?
  4. ¿Dónde colocas la configuration de la aplicación local?
  5. ¿Cómo resuelves el service de nombres?

  • ¿Puede Apache 2.2.24 de MacPorts 2.1.3 ejecutarse de forma estable en Server 10.6.8 Build 10K549 con objectives enlazados?
  • MacOS apache se instala en un directory diferente con homebrew, ¿cómo iniciar / detener?
  • Apache bonjour module y Sites folder template
  • ¿Cambiar la carpeta "Sitios" de Web Sharing a SkyDrive?
  • Servidor web ASP y PHP en OS X
  • Habilite la reescritura de URL (mod_rewrite) usando files .htaccess en ~ / Sites en Lion
  • ¿Cómo puedo hacer que los permissions existentes se apliquen a los nuevos files?
  • Configurando XAMPP en macOS Sierra (versión 10.12.6)
  • One Solution collect form web for “¿Cómo configurar los hosts virtuales de Apache?”

    1. ¿Cómo configuras tus fantasmas?

    La "forma de León" para hacerlo sería quitar el comentario de 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 fantasmas allí. Es una buena idea comenzar con uno pnetworkingeterminado que coincidirá con todos los hosts no calificados, por ejemplo:

     <VirtualHost *:80> DocumentRoot /Library/WebServer/Documents </VirtualHost> 

    A continuación, puede agregar cada vhost al mismo file, o puede configurar un sistema similar como Debian incluyendo todos los files en un directory específico, como se muestra a continuación:

     Include /etc/apache2/sites-enabled/* 

    Ahora bien, si enlaza aquí los files que existen en otro sitio (sitios disponibles) o pone files reales realmente no importa. Personalmente, creo que los sitios disponibles son excesivos para un cuadro de desarrollo (y realmente nunca quiero "deshabilitar" un vhost), así que simplemente creo un file para cada vhost directamente en sitios habilitados o equivalentes (de hecho, nombre el directory / etc / apache / sites para evitar confusiones).

    2. ¿Dónde colocas el código y el docroot para tus fantasmas?

    Mis sitios reales los puse en / Users / username / Sites. Prefiero ponerlos en mi directory de inicio para facilitar el acceso en Finder, etc. Dicho esto, es bueno notar que este directory está expuesto por defecto por el module userdir. Como no necesito el alojamiento del server de usuario, y voy a configurar las webroots a continuación, lo desactivé comentando la siguiente línea:

     Include /private/etc/apache2/extra/httpd-userdir.conf 

    3. ¿Dónde colocas los files de logging?

    Archivos de logging Guardo lo mismo (por ejemplo, / var / log / apache / *). Nuevamente, para un cuadro de desarrollo local, creo que los files de logging individuales para cada host virtual son excesivos. Hay tantas cosas que puedo hacer varias veces 🙂 Si no quieres files de logging separados, puedes por supuesto configurarlo de esa manera dentro de la directiva VirtualHost (por ejemplo /var/log/apache/my.project.dev-error.log).

    4. ¿Dónde colocas la configuration de la aplicación local?

    ¿A qué aplicaciones te refieres? Si la aplicación web, los guardo junto con todos los demás files de proyecto. Dependiendo de su architecture, sus files de configuration no necesitan estar debajo de su webroot si eso es un problema, de hecho, típicamente mi webroot para cualquier proyecto será / Users / username / Sites / someproject / web, por lo que los files de configuration podrían estar en / Users / username / Sites / someproject / config sin exponerlos a través de Apache.

    5. ¿Cómo resuelves el service de nombres?

    El más directo sería agregar cada nombre de host a / etc / hosts. Desafortunadamente, esto no hace comodines. Si se siente cómodo configurando un server DNS como bind, puede configurar uno localmente o en su networking para resolver * .dev a 127.0.0.1 por ejemplo. La desventaja de hacer eso en su networking es, por supuesto, que dejará de funcionar en una location diferente. Personalmente, uso / etc / hosts.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).