¿Cómo configurar los hosts virtuales locales de apache?

4

Configurando Apache para el desarrollo local en Lion, he logrado averiguar esto:

  • /private/etc/apache2/ y /etc/apache2/ tienen un enlace simbólico
  • /etc/apache2/httpd.conf es autoritario
  • httpd.conf se basa en los confs en extra
  • original es una pista falsa de origen desconocido, probablemente Apache

Desde Debian, me he acostumbrado a manejar los hosts virtuales de Apache al agregar archivos a /etc/apache2/sites-available/ y al vincularlos a /etc/apache2/sites-enabled/ . Pero que parece ser la reserva especial de los pueblos del "Servidor Lion". Probablemente sea relativamente trivial configurar de esa manera, pero me gustaría saber qué han hecho otras personas;

  1. ¿Cómo configura sus vhosts?
  2. ¿Dónde colocas el código y el docroot para tus vhosts?
  3. ¿Dónde colocas los archivos de registro?
  4. ¿Dónde coloca la configuración de la aplicación local?
  5. ¿Cómo resuelves el servicio de nombres?
pregunta John2095 17.01.2012 - 05:58

1 respuesta

8

1. ¿Cómo configura sus vhosts?

La "manera León" de hacerlo sería no comentar 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 comenzar con uno predeterminado que coincida con todos los hosts no calificados, por ejemplo:

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

A continuación, puede agregar todos los vhost al mismo archivo, o puede configurar un sistema similar como Debian incluyendo todos los archivos en un directorio específico a continuación, de este modo:

Include /etc/apache2/sites-enabled/*

Ahora, si los archivos de enlaces simbólicos que existen en otro lugar (sitios disponibles) o los archivos reales no importan. 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 archivo para cada host virtual directamente en sitios habilitados o equivalentes (de hecho, nombré el directorio / etc / apache / sites para evitar confusiones).

2. ¿Dónde coloca el código y docroot para sus vhosts?

Mis sitios reales que puse en / Usuarios / nombre de usuario / Sitios. Prefiero ponerlos en mi directorio de inicio para facilitar el acceso en el Finder, etc. Dicho esto, es bueno notar que este directorio está expuesto de manera predeterminada por el módulo userdir. Ya que no necesito userdir hosting, y voy a configurar webroots a continuación, lo deshabilité comentando la siguiente línea:

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

3. ¿Dónde colocas los archivos de registro?

Los archivos de registro mantengo lo mismo (por ejemplo, / var / log / apache / *). Nuevamente, para un cuadro de desarrollo local, creo que los archivos de registro individuales para cada vhost son excesivos. Solo puedo hacer muchas tareas múltiples :) Si quiere archivos de registro separados, por supuesto, puede configurarlo de esa manera dentro de la directiva VirtualHost (por ejemplo, /var/log/apache/my.project.dev-error.log) .

4. ¿Dónde coloca la configuración de la aplicación local?

¿A qué aplicaciones te refieres? Si es una aplicación web, los guardo junto con todos los demás archivos de 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, por lo que los archivos de configuración podrían estar en / Usuarios / nombre de usuario / Sitios / someproject / config sin exponerlos a través de Apache.

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

Lo más directo sería agregar cada nombre de host a / etc / hosts. Desafortunadamente, esto no hace comodines. Si te sientes cómodo configurando un servidor DNS como enlace, puedes configurar uno localmente o en tu red para resolver * .dev a 127.0.0.1, por ejemplo. La desventaja de hacer eso en su red es, por supuesto, que dejará de funcionar en una ubicación diferente. Personalmente, uso / etc / hosts.

    
respondido por el Gerry 17.01.2012 - 09:45

Lea otras preguntas en las etiquetas