Estoy tratando de averiguar cuál es la configuración completa completa de una configuración httpd.
Todos los archivos de configuración están dispersos en diferentes archivos (/etc/httpd/conf.d, httpd.conf, varias configuraciones de mod)
¿Hay alguna forma de listar la configuración httpd final?
¿Te gusta toda la configuración de instalación en ejecución en un solo archivo?
apachectl -S
para ejecutar config,apachectl -M
para mostrar módulos cargadosapachectl -S
no le da ni "la configuración completa completa" ni "la configuración de instalación completa en ejecución en un solo archivo".Respuestas:
Como señaló arco444, puede usar
apachectl -S
para mostrar una descripción general de los VirtualHosts que se ejecutan actualmente desde las configuraciones yapachectl -M
para mostrar todos los módulos cargados actualmente; no conozco una herramienta para mostrar la salida detallada de todas las configuraciones analizadas (y en qué orden fueron analizados) en el lanzamiento de httpd, pero le recomendaría que se familiarice con la estructura general de los archivos de configuración httpd :De particular interés para su pregunta: el archivo de configuración de apache 'principal' se encuentra en
/etc/httpd/conf/httpd.conf
(en la región de la línea 221 en una instalación httpd predeterminada de los repositorios incluidos en CentOS 6, que supongo que está utilizando en función de sus etiquetas de publicación), y los archivos de configuración 'complementarios' se encuentran en/etc/httpd/conf.d
y deben incluirse explícitamente en el archivo de configuración principal. Por ejemplo, si busca en elhttpd.conf
archivo el término 'Include
', encontrará la líneaInclude conf.d/*.conf
que es la que incluye todos los archivos de extensión.conf
en el subdirectorioconf.d
, en orden alfabético, por lo que querrá familiarizarse con la importancia del análisis de archivos de configuración en algún punto si es posible.Además, si está utilizando un editor de texto basado en shell como vim, le sugiero que habilite la numeración de líneas y el resaltado de sintaxis de forma predeterminada para que los archivos de configuración tan largos sean un poco más fáciles de analizar y navegar, en el caso de vim , lo haría creando un archivo en su directorio de inicio llamado
.vimrc
(o agregando a uno existente) y agregando las siguientes líneas:fuente
Como se describe en la documentación del servidor HTTP Apache
DUMP_CONFIG
requieremod_info
habilitadoa2enmod info
:!En Ubuntu haz lo siguiente
Si desea quitar los números de línea, hágalo
o redirigir a un archivo
fuente
Utilice mod_info para ese propósito: http://httpd.apache.org/docs/2.2/mod/mod_info.html
El único inconveniente es que si lo necesita para recuperar una configuración eliminada y aún no ha cargado el módulo, no lo ayudará mucho.
fuente
Tengo un script (por desgracia, en Perl; perdóname, es antiguo) que aplana los archivos de configuración, elimina los comentarios (de forma predeterminada) e incluye
# FILE
comentarios para que puedas averiguar qué archivo contiene lo que podrías estar buscando.Lo escribí con Apache httpd, aunque también se usa con Oracle OHS
https://github.com/cameronkerrnz/scriptorium/blob/master/httpd-dump-config
Particularmente útil para comparar configuraciones en diferentes máquinas con SSH y diff / meld / etc.
Ejemplo:
Aquí hay un ejemplo usando diff (CLI) y meld (GUI):
He usado esto mucho a lo largo de los años al navegar por una configuración con miles de líneas de configuración distribuidas en muchos archivos.
fuente
Cuando tuve que mantener demasiadas configuraciones de Apache, me equipé con un script que hizo lo que me pediste. Me ayudó un montón.
Puede configurar la variable de entorno APCALL si desea ver los comentarios y las líneas vacías, lo que en su mayoría no hice. Advertencia: debe ejecutarse desde ServerRoot.
fuente