web-dev-qa-db-ja.com

Apacheが使用している構成ファイルを確認するにはどうすればよいですか?

Mac OS Xで仮想ホストをセットアップしようとしています。httpd.confを変更してサーバーを再起動していますが、うまく機能させることができませんでした。さらに、httpd.confに記載されているDocumentRoot(Libraries/WebServer/Documents)のファイルではなく、別のディレクトリ(/ usr/local/Apache2/htdocs)にあることに気付きました。このフォルダはhttpd.confのどこにも記載されていません。さらに、PHPは機能しますが、 "LoadModule php5_module"行がコメント化されています。これにより、別の.confファイルを使用していると思います。実際にロードされている構成を特定するにはどうすればよいですか?

更新:httpd.confを削除したところ、Apacheが再起動後に同じように動作するため、使用していませんでした。

37
Claudiu

* nixアプリケーションでは、最も簡単な方法はバイナリ自体をクエリすることです。 httpdの場合、プロセスは次のようになると思います。

$ 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"

あなたが見ることができるように-私のOS Xは、バイナリが指示されていない限り、設定ファイルを使用しますと言います:/ private/etc/Apache2/httpd.conf

それでも問題が解決しない場合は、おそらくクリストファーが提案するfindの提案が次のステップです。

47
Zayne S Halsall

this に関する別のserverfault質問があります。 debianベースのサーバーを使用している場合は、Apache2ctlは、使用されている構成ファイルを判別します。

Apache2ctl -V

これについての詳細:

Apacheが実行時に使用しているhttpd.confを確認する方法

18
chrisjlee

試す

ps ax | grep httpd

そしてあなたは(かもしれない)のような出力を得るべきです

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

さらに、サーバーをどの程度正確に再起動していますか? 実際に設定ファイルを再度読み取っていない場合に備えて、興味があります。

11
msanford

一部の構成ではサーバーアプリ、brewなどを使用し、1つのライナーがFTWであるため:

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

このコマンドは次のことを行います。

  • アクティブなhttpdプロセスを見つける
  • 出力構成情報
  • 設定ファイルをグレップ

シエラとエルキャピタンでテスト済み

3
Creaforge

まず、Apacheの起動スクリプトを確認します。 macOSの場合は、/ Library/LaunchDaemonsにする必要があります。これには、作業ディレクトリまたは同様の情報が含まれる場合があります。

実行中のプロセス自体をdtrussでデバッグすることもできます。 dtruss -p <pid>を使用して、実行中のプロセスに接続できます。次に、それをHUPした場合、おそらく出力を調べて、どこから構成を取得しているかを確認できます。または、dtruss start_Apache_commandを使用してdtrussを直接呼び出すだけでApacheを起動できます。

find / -name httpd.confを使用すると、httpd.confをシステム全体で検索できます。

0