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


36

Mac OS Xで仮想ホストを設定しようとしています。httpd.confを変更してサーバーを再起動しましたが、動作させるのに運がありませんでした。さらに、httpd.conf(Libraries / WebServer / Documents)で言及されているDocumentRootではなく、別のディレクトリ(/ usr / local / apache2 / htdocs)でファイルを提供していることに気付きます。このフォルダは、httpd.confのどこにも記載されていません。さらに、PHPは動作しますが、「LoadModule php5_module」行はコメント化されています。これにより、別の.confファイルを使用していると思われます。どの設定が実際に読み込まれているのかを知るにはどうすればよいですか?

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

回答:


45

* 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の提案が次のステップです。


2
あなたはServer.appで経由でのApacheを使用している場合、これは場合、あなたが@msanfordからの回答では、プロセスのリストが必要になりますことを動作しませんserverfault.com/a/155114/187798 Server.appが始まることを示しているのhttpd私のインストール(Mavericks)からここに示すように異なる構成ファイルを使用して/usr/sbin/httpd -D FOREGROUND -f /Library/Server/Web/Config/apache2/httpd_server_app.conf -D WEBSERVICE_ON
ジェイソンS

macports経由でインストールされたApacheを使用する場合にも動作しません-msandordによる答えが私のために働いています!
pgee70 14年


10

お試しください

ps ax | grep httpd

そして、あなたは(かもしれない)出力を取得する必要があります

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

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


フムには-fフラグがありません
Claudiu

1
1これが唯一の答えはあるので、あなたがServer.app経由でのApacheを使用している場合は、自分ではApacheを設定するか、している場合であるすべてのケースのための作品、
ジェイソンSを

2

いくつかの構成はサーバーアプリ、醸造などを使用し、1つのライナーはFTWを使用するため:

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

このコマンドは次を実行します。

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

Sierra&El Capitanでテスト済み


これ$は重要です(この場合、コマンドラインプロンプトではありません)。parens内のステートメントをコマンドに変換し、それに-Vフラグを渡します。除外すると、「予期しないトークン `-V 'に近い構文エラー」が発生します。
トムオーガー

0

最初に、Apacheの起動スクリプトを確認します。macOSの場合、/ Library / LaunchDaemonsになります。これには、作業ディレクトリなどの情報が含まれる場合があります。

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

常にhttpd.confをシステム全体で検索することができfind / -name httpd.confます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.