J'essaie de comprendre quelle est la configuration complète complète d'une configuration httpd.
Tous les fichiers de configuration sont dispersés dans différents fichiers (/etc/httpd/conf.d, httpd.conf, divers configs de mod)
Est-il possible de lister la configuration finale de httpd?
Vous aimez la configuration d'installation en cours dans un seul fichier?
Comme noté par arco444, vous pouvez utiliser apachectl -S
pour afficher un aperçu des hôtes virtuels en cours d’exécution à partir des configurations, et apachectl -M
pour afficher tous les modules actuellement chargés - Je ne connais pas un outil pour afficher le résultat détaillé de toutes les configurations analysées (et dans quel ordre elles ont été analysées) lors du lancement de httpd, mais je vous recommande de vous familiariser avec les structure générale des fichiers de configuration httpd :
Notez en particulier que votre question: le fichier de configuration "principal" d’Apache se trouve dans /etc/httpd/conf/httpd.conf
(dans la région de la ligne 221 sur une installation httpd par défaut à partir du dépôt inclus dans CentOS 6, que je suppose que vous utilisez en fonction de vos balises post), et les fichiers de configuration "supplémentaires" se trouvent dans /etc/httpd/conf.d
et doivent être explicitement inclus dans le fichier de configuration principal. Par exemple, si vous recherchez le httpd.conf
fichier pour le terme 'Include
', vous trouverez la ligne Include conf.d/*.conf
qui contient tous les fichiers d’extension .conf
dans le sous-répertoire conf.d
- dans l’ordre alphabétique, vous voudrez donc vous familiariser avec l’importance de l’analyse du fichier de configuration à un moment donné, si possible.
Par ailleurs, si vous utilisez un éditeur de texte basé sur Shell tel que vim, je vous suggère d'activer la mise en surbrillance de la numérotation des lignes et de la syntaxe de manière à ce que ces fichiers de configuration volumineux soient un peu plus faciles à analyser et à naviguer - dans le cas de vim , vous le feriez en créant un fichier dans votre répertoire personnel appelé .vimrc
(ou ajouter à un existant) et ajouter les lignes suivantes:
set nu
syntax on
Veuillez utiliser mod_info à cette fin: http://httpd.Apache.org/docs/2.2/mod/mod_info.html
le seul inconvénient est que si vous en avez besoin pour récupérer une configuration supprimée et que vous n'avez pas déjà chargé le module, cela ne vous aidera pas beaucoup.
Comme décrit dans le Apache HTTP Server Documentation
Si la définition de configuration -DDUMP_CONFIG est définie, mod_info videra la configuration pré-analysée sur stdout lors du démarrage du serveur.
httpd -DDUMP_CONFIG -k start
DUMP_CONFIG
a besoin mod_info
activée: a2enmod info
!
Dans Ubuntu, procédez comme suit
Sudo Apache2ctl -DDUMP_CONFIG
Si vous voulez effacer les numéros de ligne, faites
Sudo Apache2ctl -DDUMP_CONFIG | grep -vE "^[ ]*#[ ]*[0-9]+:$"
ou rediriger vers un fichier
Sudo Apache2ctl -DDUMP_CONFIG | grep -vE "^[ ]*#[ ]*[0-9]+:$" > /path/to/dump.conf
Limitations connues
mod_info fournit ses informations en lisant la configuration analysée plutôt qu'en lisant le fichier de configuration d'origine. La manière dont l’arborescence de configuration analysée est créée a quelques limitations:
- Les directives qui sont exécutées immédiatement plutôt que stockées dans la configuration analysée ne sont pas répertoriées. Ceux-ci incluent ServerRoot, LoadModule et LoadFile.
- Les directives qui contrôlent le fichier de configuration lui-même, tel que Inclure, ne sont pas répertoriées, mais les directives de configuration incluses le sont.
- Les commentaires ne sont pas listés. (Cela peut être considéré comme une fonctionnalité.)
- Les directives de configuration des fichiers .htaccess ne sont pas répertoriées (car elles ne font pas partie de la configuration permanente du serveur).
- Les directives de conteneur telles que celles sont listées normalement, mais mod_info ne peut pas déterminer le numéro de ligne pour la fermeture.
- Les directives générées par des modules tiers tels que mod_Perl peuvent ne pas être répertoriées.