Comment puis-je savoir quel file de configuration utilise Apache?

J'essaie de configurer des hôtes virtuels sur Mac OS X. J'ai modifié le site httpd.conf et redémarré le server, mais je n'ai pas eu de chance à le faire fonctionner. En outre, je remarque qu'il ne sert pas de files dans le DocumentRoot mentionné dans httpd.conf (Bibliothèques / WebServer / Documents), mais dans un directory différent (/ usr / local / apache2 / htdocs). Je ne vois pas ce dossier mentionné n'importe où dans httpd.conf. En outre, PHP fonctionne, mais la ligne "LoadModule php5_module" est commentée. Cela me fait penser qu'il utilise un autre file .conf. Comment puis-je déterminer quelle configuration est actuellement chargée?

Mise à jour: Je viens de supprimer que httpd.conf et apache se comportent de la même manière après le redémarrage, donc ça ne l'utilisait pas vraiment!

Avec n'importe quelle application * nix, la méthode la plus simple consiste à interroger le binary lui-même. Dans le cas de httpd, j'imagine que le process serait quelque chose comme 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 Comstackd using: APR 1.2.7, APR-Util 1.2.7 Architecture: 64-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server comstackd 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 voir – mon OS X indique que le file binary, s'il n'est pas indiqué autrement, utilisera le file de configuration: /private/etc/apache2/httpd.conf

Si cela ne l'aide pas, peut-être que la suggestion de Christopher de find est la prochaine étape.

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

 apache2ctl -V 

Plus sur ceci:

Comment savoir quel httpd.conf apache utilise au moment de l'exécution

essayer

 ps ax | grep httpd 

et vous devriez (pourrait) get une sortie comme

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

De plus, comment réinitialisez-vous le server? Juste curieux au cas où vous ne lisez pas réellement le file de configuration.

Quelques choses. Tout d'abord, vérifiez le script de démarrage d'Apache. Je suppose que c'est dans /etc/init.d/httpd? Pour OSX, c'est / Library / LaunchDaemons? Cela pourrait inclure un directory de travail ou des informations similaires.

Vous pouvez également déboguer le process en cours avec dtruss. Vous pouvez vous connecter au process en cours d'exécution en utilisant dtruss -p <pid> . Ensuite, si vous HUP, vous pouvez probablement parcourir la sortie pour voir d'où s'appuie sa configuration. Alternativement, il suffit de commencer Apache en appelant directement à Dtruss. dtruss start_apache_command .

Troisièmement, vous pouvez toujours faire une search globale pour 'httpd.conf'. find / -name httpd.conf

– Chrytopher Karel

Parce que certaines configurations utilisent l'application Serveur, faites-en ou autrement, et parce que l'une des doublures FTW:

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

Cette command effectue les opérations suivantes:

  • Trouver un process actif httpd
  • Informations de configuration de sortie
  • Grep le file de configuration

Testé sur Sierra & El Capitan