48 votes

Comment puis-je savoir quel fichier de configuration Apache est utilisé?

Je suis en train de configurer des hôtes virtuels sur Mac OS X. J'ai modifié httpd.conf et redémarré le serveur, mais je n'ai eu aucun succès pour le faire fonctionner. De plus, je remarque qu'il ne sert pas de fichiers dans le DocumentRoot mentionné dans httpd.conf (Libraries/WebServer/Documents), mais dans un répertoire différent (/usr/local/apache2/htdocs). Je ne vois pas ce dossier mentionné nulle part dans httpd.conf. De plus, PHP fonctionne, mais la ligne "LoadModule php5_module" est commentée. Cela me fait penser qu'il utilise un autre fichier .conf. Comment puis-je savoir quel fichier de configuration est réellement chargé?

Mise à jour : je viens de supprimer ce httpd.conf et Apache se comporte de la même manière après redémarrage, donc il ne l'utilisait certainement pas !

61voto

Zayne S Halsall Points 1892

Avec n'importe quelle application *nix, la méthode la plus simple consiste à interroger directement le binaire. Dans le cas de httpd, je suppose que le processus ressemblerait à ceci :

$ whereis httpd
/usr/sbin/httpd
$ /usr/sbin/httpd -V
Server version: Apache/2.2.11 (Unix)
Server built:   Jun 17 2009 14:55:13
Server's Module Magic Number: 20051115:21
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_FLOCK_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/usr"
 -D SUEXEC_BIN="/usr/bin/suexec"
 -D DEFAULT_PIDLOG="/private/var/run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/private/var/run/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"

Comme vous pouvez le constater, mon OS X indique que, si ce n'est pas spécifié autrement, le binaire utilisera le fichier de configuration : /private/etc/apache2/httpd.conf

Si cela ne vous aide pas, la suggestion de Christopher d'utiliser la commande find pourrait être la prochaine étape.

27voto

cntrstrk14 Points 313

Il y a une autre question serverfault concernant ce sujet. Si vous utilisez un serveur basé sur Debian, vous pouvez utiliser apache2ctl pour déterminer quel fichier de configuration est utilisé :

apache2ctl -V

Plus d'informations à ce sujet :

Comment savoir quel fichier httpd.conf apache utilise à l'exécution

13voto

msanford Points 1427

Essayez

ps ax | grep httpd

et vous devriez (pourriez) obtenir une sortie comme

1633   ??  Ss     0:00.21 /usr/sbin/httpd -f /etc/httpd.conf

De plus, comment redémarrez-vous exactement le serveur? Juste par curiosité au cas où vous ne seriez pas réellement en train de relire le fichier de configuration.

4voto

Creaforge Points 141

Parce que certaines configurations utilisent l'application Server, brew ou autre, et parce que les commandes en une seule ligne sont géniales :

$(ps ax -o comm | grep -m 1 httpd) -V | grep SERVER_CONFIG_FILE

Cette commande fait ce qui suit :

  • Trouve un processus httpd actif
  • Affiche les informations de configuration
  • Fait une recherche du fichier de configuration

Testé sur Sierra & El Capitan

0voto

isherwood Points 107

Tout d'abord, vérifiez quel est le script de démarrage pour Apache. Pour macOS, il devrait être situé dans /Library/LaunchDaemons. Cela pourrait inclure un répertoire de travail, ou des informations similaires.

Vous pouvez également déboguer le processus en cours avec dtruss. Vous pouvez vous connecter au processus en cours en utilisant dtruss -p . Ensuite, si vous lui envoyez un HUP, vous pouvez probablement étudier la sortie pour voir d'où vient sa configuration. Sinon, démarrez simplement Apache en appelant directement dtruss avec dtruss start_apache_command.

Vous pourriez également simplement faire une recherche système pour httpd.conf avec find / -name httpd.conf.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X