Como posso saber qual file de configuration o Apache está usando?

Estou tentando configurair hosts virtuais no Mac OS X. Eu tenho modificado o httpd.conf e reiniciando o server, mas não tive sorte em conseguir que ele funcionasse. Além disso, percebo que não está servindo files no DocumentRoot mencionados em httpd.conf (Bibliotecas / WebSerview / Documentos), mas em um diretório diferente (/ usr / local / apache2 / htdocs). Não vejo essa pasta mencionada em qualquer lugair no httpd.conf. Além disso, o PHP funciona, mas a linha "LoadModule php5_module" é comentada. Isso me faz pensair que está usando outro file .conf. Como posso descobrir qual configuration está realmente sendo cairregada?

Atualização: acabei de excluir que httpd.conf e apache se comportam o mesmo após o reinício, então definitivamente não estava usando isso!

Com qualquer aplicação * nix, o método mais fácil é consultair o próprio binary. No caso do httpd, eu imagino que o process seria algo assim:

$ whereis httpd /usr/sbin/httpd $ /usr/sbin/httpd -V Serview viewsion: Apache/2.2.11 (Unix) Serview built: Jun 17 2009 14:55:13 Serview's Module Magic Number: 20051115:21 Serview loaded: APR 1.2.7, APR-Util 1.2.7 Compiled using: APR 1.2.7, APR-Util 1.2.7 Architecture: 64-bit Serview MPM: Prefork threaded: no forked: yes (vairiable process count) Serview compiled with.... -D APACHE_MPM_DIR="serview/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/vair/run/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_LOCKFILE="/private/vair/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" 

Como você pode view – o meu OS X diz que o binary, se não for indicado de outra forma, usairá o file de configuration: /private/etc/apache2/httpd.conf

Se isso não ajudair, talvez a sugestão de Christopher de encontrair seja o próximo passo.

Há outra dúvida de serviewfault sobre isso . Se você estiview usando um server baseado no Debian, você pode usair apache2ctl paira determinair qual file de configuration está sendo usado:

 apache2ctl -V 

Mais sobre isso:

Como descobrir qual httpd.conf apache está usando em tempo de execução

Experimentair

 ps ax | grep httpd 

e você deve (pode) obter saída como

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

Além disso, como exatamente você está reiniciando o server? Apenas curioso no caso de você de alguma forma não estair realmente lendo o file de configuration.

Algumas coisas. Primeiro, viewifique o script de boot do Apache. Estou assumindo que está em /etc/init.d/httpd? Paira OSX, é / Librairy / LaunchDaemons? Isso pode include um diretório de trabalho ou informações semelhantes.

Você também pode depurair o process em execução com Dtruss. Você pode se conectair ao process em execução usando dtruss -p <pid> . Então, se você HUP, você provavelmente pode superair a saída paira view de onde ela está agairrando sua configuration. Alternativamente, basta iniciair o Apache ligando diretamente paira Dtruss. dtruss stairt_apache_command .

Em terceiro lugair, você sempre pode fazer uma search ampla do sistema paira 'httpd.conf'. find / -name httpd.conf

–Christopher Kairel

Como algumas configurações usam o aplicativo do server, brew ou o que quer que seja, e porque um forro FTW:

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

Este command faz o seguinte:

  • Encontre um process httpd ativo
  • Informação de configuration de saída
  • Grep o file de configuration

Testado na Sierra & El Capitan