Ubuntu Apache: httpd.conf o apache2.conf?

43

¿Cuál de estos dos archivos debo usar para configurar Apache?

El httpd.confestá vacío, mientras apache2.confque no lo está.

¡Me confunde!

ajsie
fuente

Respuestas:

46

El httpd.conf está diseñado para configuraciones de usuario. Realmente no debe editar el apache2.conf, ya que puede actualizarse en futuras actualizaciones.

Una opción adicional es simplemente poner su configuración personalizada en /etc/apache2/conf.d, todos los archivos en este directorio también están incluidos.

Rob Di Marco
fuente
55
No tengo un archivo llamado apapche2.conf
Doug Molineux
18

Estas no son tus únicas opciones. En Ubuntu / Debian, Apache también procesa todos los archivos /etc/apache2/sites-enabled/(que deberían ser enlaces simbólicos a los archivos en el sites-available/directorio, administrados por a2ensitey los a2dissiteprogramas)

Está destinado a utilizar estos directorios para VirtualHosts.

Powerlord
fuente
1
Esta es la respuesta correcta ! y también los archivos de configuración de puertos / mods disponibles si desea dar más detalles sobre su respuesta
Sudhi
5

apache2.conf incluye httpd.conf:

a@test$:/etc/apache2$ cat apache2.conf | grep httpd.conf 
Include /etc/apache2/httpd.conf

Creo que httpd.conf está en desuso, pero solo se dejó allí para las personas conservadoras para que encuentren su camino ... :)

EDITAR:

Después de leer la respuesta de Rob, hice una mejor prueba:

a@test:/etc/apache2$ grep -C 1 httpd.conf apache2.conf 
# Include all the user configurations:
Include /etc/apache2/httpd.conf

Configuraciones de usuario es ...

Alexander T
fuente
66
+1 "httpd.conf está en desuso"
feeela
1

Apache Software Foundation publica muchos bits de software, uno de los cuales es un servidor web llamado httpd. Las fuentes del proyecto httpd incluyen, entre otras cosas, un httpd.confarchivo de configuración de muestra, que se instala por defecto en /usr/local/etc/httpdo /etc/httpd. Encontrará httpd nombrado como tal en la mayoría de los sistemas.

Sin embargo, hace mucho tiempo y lejos, alguien en la distribución Debian GNU / Linux decidió cambiar el nombre del software dentro de esa distribución de httpda apache2. Por lo tanto, en un sistema Debian encontrará un archivo de configuración llamado apache2.confen un directorio llamado /etc/apache2. No sé quién hizo esto o por qué, pero es una fuente constante de confusión a la par que llamar a Windows "Microsoft" o ESXi "VMware". Las distribuciones basadas en Debian, como Ubuntu, heredan esta extrañeza. Aún más extraño, luego incluyen un archivo /etc/apache2/httpd.confque se Included apache2.confen el que los usuarios pueden colocar la configuración personalizada.

Entonces la respuesta es, si está en un sistema basado en Debian, dobla su cerebro para hacer las cosas de la manera en que Debian quiere que lo haga. De lo contrario, generalmente hace las cosas de la manera normal como lo hace el proyecto httpd ascendente.

Michael Hampton
fuente
1

Apache 2.4

Utilizar:

Coloque cualquier configuración personalizada en /etc/apache2/conf-available/{name}.conf

Habilita / deshabilita tu configuración usando sudo a2enconf {name}o sudo a2disconf {name}.

(Luego reinicie el servicio apache2).

No utilizar:

httpd.conf está en desuso y ya NO debería verlo; si lo hace, déjelo vacío como está instalado.

apache2.conf todavía está instalado, pero déjelo solo si desea actualizar Apache limpia / fácilmente.

-

Todo lo que pueda ver en una configuración de Apache 'global' puede agregarse / anularse en su configuración personalizada como se indicó anteriormente.

Más: https://stackoverflow.com/a/11687212/503621

bshea
fuente
0

Si apache2.confno está vacío y httpd.confestá vacío, probablemente debería usar apache2.conf;-)

Pero supongo que uno incluye el otro (y que uno de ellos se mantiene únicamente por razones de compatibilidad con versiones anteriores) , por lo que no debería cambiar mucho.


Aún así, si desea agregar algo, como un nuevo VirtualHost: ¿no hay otro subdirectorio en el que pueda colocar su archivo e incluirlo?

Probablemente sería una mejor solución: no modificaría el archivo predeterminado, lo que simplificaría las actualizaciones.

Pascal MARTIN
fuente
Como mencionó Pascal, si desea agregar un nuevo VirtualHost, debe agregar un nuevo archivo en sitios disponibles y luego tener un enlace simbólico en sitios habilitados con el comando a2ensite - help.ubuntu.com/6.06/ubuntu/serverguide/ C / httpd.html
ccheneson
0

simplemente abra apache2.conf y mire el contenido:

Include /etc/apache2/mod-enabled/*.conf
Include /etc/apache2/httpd.conf

Entonces, si desea incluir su propia configuración, agréguela a httpd.conf y apache2.conf la obtendrá automáticamente.

Como otros dicen, apache2.conf puede generarse a máquina y es mejor no tocarlo.

Para obtener más información, generalmente Ubuntu usa apache2.conf y Centos usa httpd.conf. Entonces, todos estos archivos dependen del sistema operativo que tenga.

kazi Tanvir Ahsan
fuente
-2

Para encontrar el nombre y la ubicación del archivo de configuración, deberá:

1) Busque como se llama el proceso, en este caso trabajando con el usuario de apache:

ps -ef | grep apache

(en este ejemplo, devuelve: httpd)

2) Mostrar las variables utilizadas por el binario:

httpd -V | grep 'HTTPD_ROOT' && httpd -V | grep 'SERVER_CONFIG_FILE'

Extraído y capturas de pantalla en: http://www.sysadmit.com/2016/12/linux-apache-donde-esta-httpdconf-apache2conf.html

Ray Tatooine
fuente
Hola, me parece que has respondido una pregunta ya respondida, una que ha sido respondida hace años. Además, su solución no está ayudando al interrogador original a resolver el problema, qué archivo de configuración es la mejor práctica para usar.
M. Glatki