Cómo configurar Apache (sitios disponibles vs httpd.conf)

Cómo configurar Apache (sitios disponibles vs httpd.conf)

He estado intentando seguir algunos tutoriales básicos que explican cómo poner en funcionamiento Apache (en ubuntu, ejecutándose en Amazon). Casi siempre me he quedado en blanco, porque todos los tutoriales me dijeron que configurara httpd.conf (para agregar DocumentRoot, etc.).

Ahora me topé con un tutorial que me decía que agregara configuraciones de sitio al directorio de sitios disponibles (en /etc/apache) y luego vinculara simbólicamente desde sitios habilitados. Configurar de esta manera parece funcionar.

Pero ahora estoy confundido: ¿cómo se supone que debo configurar Apache? La mayoría de los tutoriales todavía parecen decir que debería usar httpd.conf. ¿Cuál debería usar? ¿Cual es la diferencia? ¿Por qué todos los tutoriales son "incorrectos" (si lo son)?

Respuesta1

El sites-availablemétodo generalmente se considera el "estilo Debian":

  • configuración "principal" en/etc/apache2/apache2.conf
  • configuración de "usuario" en/etc/apache2/httpd.conf
  • vhosts en /etc/apache2/sites-availablearchivos (uno por archivo, normalmente)
    • es posible que desee numerarlos, por ejemplo, 00-dominio.com, 01-otrodominio.com
  • puertos ( Listendirectivas) en/etc/apache2/ports.conf
  • modificaciones en/etc/apache2/mods-available

Puedes manipularlos con enlaces simbólicos o con la a2serie de comandos:

a2ensite/a2dissite <site_config_filename>
a2enmod/a2dismod <module_name>

Dependiendo de sus preferencias personales, puede reiniciar Apache usando apachectl, /etc/init.d/apache2 (start|stop|reload|restart)oservice apache2 (start|stop|reload|restart)

Un ejemplo donde usaría httpd.confen lugar de una entrada vhost sería para una regla de redirección o reescritura global, por ejemplo. Otras cositas: en general, debe dejarlas apache2.confen paz y asegurarse de configurar un esquema de nombres coherente para los vhosts en el sites-availabledirectorio.

Respuesta2

La ubicación y organización de los archivos de configuración es configurable y puede cambiar entre versiones principales o entre distribuciones.

Apache Wiki tiene una útilguíaa los nombres y ubicaciones de los archivos de configuración.

Debido a que los archivos de configuración pueden contener includedirectivas, partes de la configuración se pueden separar en archivos más pequeños. Dado que un archivo de configuración estándar de Apache contiene muchos comentarios y muchos elementos estándar, tiene sentido separar las partes que es más probable que cambie.

El nombre del archivo de configuración principal se puede cambiar en el momento de la compilación y en versiones recientes ha cambiado de httpd.confaapache2.conf

A lo largo de los años, también ha habido cierta evolución en la organización de los archivos de configuración incluidos.

Por ejemplo, instalé Apache2 en un sistema basado en Ubuntu usando apt-get install apache2: aquí están los archivos incluidos

/etc/apache2$ ls
apache2.conf  envvars     mods-available  ports.conf       sites-enabled
conf.d        httpd.conf  mods-enabled    sites-available

/etc/apache2$ grep ^Include apache2.conf
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
Include /etc/apache2/conf.d/
Include /etc/apache2/sites-enabled/ 

/etc/apache2$ ls -l sites-enabled
total 0
lrwxrwxrwx 1 root root 26 Dec 26 12:30 000-default -> ../sites-available/default

Por lo tanto, los pocos ajustes de configuración que probablemente le interesen más se encuentran ahora en /etc/apache2/sites-available/default.

Puedo ver que esto es consistente con Ubuntu.documentación para apacheque te recomiendo leer primero. Si tiene otra documentación para versiones anteriores de Apache (u otras distribuciones), puede adaptar esa información para que se ajuste a la forma en que se organizan las cosas en Ubuntu.

Respuesta3

El Apache en Linux se puede instalar de dos tipos. uno es mediante apt-get y el otro descarga el archivo tar y lo extrae... Por lo tanto, en el proceso apt-get, los sitios se sirven desde la carpeta /etc/apache2/sites-enabled, ya que cada sitio que sirve al mundo exterior se configura en esta carpeta mediante Ejemplo de archivos .conf 000-default.conf es un sitio predeterminado habilitado para mostrar trabajos de Apache.

por lo tanto, al crear cualquier archivo .conf en sitios habilitados y dirigirlo a la ubicación del contenido, se sirve el sitio.

Entonces, para agregar un nuevo sitio estático, se debe crear un nuevo archivo .conf en la carpeta habilitada para sitios con cualquier nombre, ejemplo ejemplo.conf. y tiene que agregar las siguientes líneas

ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combinado

Mientras que, *:80 indica "abierto al mundo a través del puerto 80" DocumentRoot /var/www/html indica "ruta del contenido del sitio"

información relacionada