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é!
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.
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
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.
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:
Testé sur Sierra & El Capitan
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
.