2

数か月前、Mac OSX 10.6.8 に Apache をインストールしました。Apache は /usr/local/apache2 に自動的にインストールされます。いくつか問題が発生した後、Apache にポート 8080 でリッスンさせることに成功し、Apache に /usr/local/apache2/cgi-bin から cgi スクリプトを実行させることができました。

それ以来、私はApacheを使用していません。最近、次を使用してApacheを起動したとき:

/usr/local/apache2/bin$ sudo apachectl -k start

次に、ブラウザに次の URL を入力しました。

http://localhost:8080

Apache は index.html ページや /usr/local/apache2/htdocs 内の他のページを提供しません。ただし、次の URL を使用した場合:

http://localhost

その後、Apacheは「動作します」と表示される「index.html」ページを提供しました。/usr/local/apache2/conf/httpd.conf にある httpd.conf ファイルを確認したところ、Apache はポート 8080 でリッスンするように設定されていました。

Listen 8080

次に、ファイル /usr/local/apache2/htdocs/index.html を「Hello world」と表示するように変更しましたが、次の URL を使用すると、Apache は引き続き「動作します」というページを表示しました。

http://localhost

次の行について、httpd.conf ファイルをもう一度確認しました。

DocumentRoot "/usr/local/apache2/htdocs"

したがって、Apache のインストールでは、/usr/local/apache2/conf/httpd.conf にある httpd.conf ファイルが使用されていないと結論付けました。Googleで検索したところ、次のコマンドが見つかりました。

/usr/local/apache2/bin$ apachectl -V 

出力を生成した:

Server version: Apache/2.2.22 (Unix)
Server built:   Jul 12 2012 15:09:37
Server's Module Magic Number: 20051115:30
Server loaded:  APR 1.3.8, APR-Util 1.3.9
Compiled using: APR 1.3.8, APR-Util 1.3.9
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"

私のApacheインストールが現在使用しているhttpd.confは、/private/etc/apache2/httpd.confにあり、次の行が含まれています。

ServerRoot "/usr"

Listen 80

DocumentRoot "/Library/WebServer/Documents"

私の質問は、一体どのようにしてこれらの変化が起こったのですか? apache のドキュメントによると、httpd.conf へのパスはコンパイル時に設定されます。/usr/local/apache2/bin/apachectl がシステム apache にシンボリック リンクされている可能性を考慮しましたが、この出力:

/usr/local/apache2/bin$ ls -al
total 2104
drwxr-xr-x  20 root   admin     680 Feb 19 12:36 .
drwxr-xr-x  15 root   admin     510 Feb 19 12:36 ..
-rwxr-xr-x   1 root   admin   57200 Feb 19 12:36 ab
-rwxr-xr-x   1 7stud  staff    3410 Feb 19 12:32 apachectl

であることを示すものではありません。

4

1 に答える 1