it-swarm-eu.dev

Comment savoir quel fichier de configuration Apache utilise?

J'essaie de configurer des hôtes virtuels sur Mac OS X. J'ai modifié httpd.conf et redémarré le serveur, mais je n'ai pas eu de chance de le faire fonctionner. De plus, je remarque qu'il ne sert pas de fichiers dans DocumentRoot mentionné dans httpd.conf (Bibliothèques/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. En outre, 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 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 il ne l'a certainement pas utilisé!

37
Claudiu

Avec n'importe quelle application * nix, la méthode la plus simple consiste à interroger le binaire lui-même. Dans le cas de httpd, j'imagine que le processus 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
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 voir - mon OS X dit que le binaire, s'il n'est pas dirigé autrement, utilisera le fichier de configuration: / private/etc/Apache2/httpd.conf

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

47
Zayne S Halsall

Il y a une autre question de défaut de serveur concernant ceci . Si vous utilisez un serveur basé sur Debian, vous pouvez utiliser Apache2ctl pour déterminer le fichier de configuration utilisé:

Apache2ctl -V

Plus à ce sujet:

Comment savoir quel httpd.conf Apache utilise lors de l'exécution

18
chrisjlee

Essayer

ps ax | grep httpd

et vous devriez (peut-être) 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 curieux au cas où vous ne seriez pas en fait relisant le fichier de configuration.

11
msanford

Parce que certaines configurations utilisent l'appli Server, brew ou autre, et parce que l'un des doublons FTW:

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

Cette commande effectue les opérations suivantes:

  • Trouver un processus httpd actif
  • Informations de configuration de sortie
  • Grep le fichier de configuration

Testé sur Sierra & El Capitan

3
Creaforge

Tout d'abord, vérifiez quel est le script de démarrage d'Apache. Pour macOS, il doit s'agir de/Library/LaunchDaemons. Cela peut inclure un répertoire de travail ou des informations similaires.

Vous pouvez également déboguer le processus en cours lui-même avec dtruss. Vous pouvez vous connecter au processus en cours en utilisant dtruss -p <pid>. Ensuite, si vous le HUP, vous pouvez probablement parcourir la sortie pour voir d'où elle tire sa configuration. Alternativement, lancez simplement Apache en appelant directement dtruss avec dtruss start_Apache_command.

Vous pouvez toujours effectuer une recherche à l'échelle du système pour httpd.conf avec find / -name httpd.conf.

0
Christopher Karel