私のApacheはすべて台無しになっているに違いないと思います。それがうまくいったかどうかはわかりません。 Snow Leopardにアップグレードしました。 このチュートリアル の最初のステップは、Apacheを起動し、 http:// localhost を開いて動作することを確認することです。正常に起動しますが、localhostにアクセスすると、403forbiddenエラーが発生します。
どこから修正すればいいのかわからないので、Apacheの新規インストールでうまくいくのではないかと思います。
どう思いますか?
更新:/private/var/log/Apache2/
にいくつかのエラーログが見つかりました。ログの1つでこれを見つけました。それが何を意味するのかわからない:
[Tue Nov 10 17:53:08 2009] [notice] caught SIGTERM, shutting down
[Tue Nov 10 21:49:17 2009] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
Warning: DocumentRoot [/usr/docs/dummy-Host.example.com] does not exist
Warning: DocumentRoot [/usr/docs/dummy-Host2.example.com] does not exist
httpd: Could not reliably determine the server's fully qualified domain name, using Andrews-Mac-Pro.local for ServerName
mod_bonjour: Skipping user 'andrew' - cannot read index file '/Users/andrew/Sites/index.html'.
[Tue Nov 10 21:49:19 2009] [notice] Digest: generating secret for digest authentication ...
[Tue Nov 10 21:49:19 2009] [notice] Digest: done
[Tue Nov 10 21:49:19 2009] [notice] Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8k DAV/2 PHP/5.3.0 configured -- resuming normal operations
更新:dummy-Host.example.com-error_log
ファイルにも何かが見つかりました。ちなみに私はこれらのダミーホストのものを設定しませんでした。これはデフォルトの構成ですか?
[Tue Nov 10 21:59:57 2009] [error] [client ::1] client denied by server configuration: /usr/docs
更新:Woohoo!仮想ホスト定義を含むファイルが見つかりました。 /etc/Apache2/extra/httpd-vhosts.conf
にありました。そこには、これら2つのダミーの仮想ホスト設定がありました。 localhost
仮想ホストを追加しました。これが必要かどうかはわかりませんが、以前は機能していなかったため、とにかく実行することにしました。古い仮想ホストを削除し、新しいlocalhost仮想ホストを追加し、Apacheを再起動した後、動作しているようです。したがって、仮想ホストを追加するときはいつでも、このファイルに追加するだけでよいと思いますか?または、Linuxのように、どこかにhostsファイルがありますか?
更新:はい、変更する必要のある/etc/hosts
ファイルがあります。そのファイルに仮想ホスト名を追加します。
403エラーが発生した場合は、ディレクトリが存在しないか、そのディレクトリの権限で表示されない可能性があります。
私の問題は、デフォルトの仮想ホスト設定が存在しないディレクトリを指していることでした。
だからここにあなたがすべきことは次のとおりです:(あなたがSnowLeopardにいると仮定して)
仮想ホスト構成ファイルを見つけて開きます。
pico /etc/Apache2/extra/httpd-vhosts.conf
仮想ホスト定義がそこにあることを確認してください。そうでない場合は作成してください
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "/Users/yourusername/Sites/mysite"
ServerName mysite.local
ErrorLog "/private/var/log/Apache2/mysite-error_log"
CustomLog "/private/var/log/Apache2/mysite-access_log" common
</VirtualHost>
開く/etc/hosts
ファイルを作成し、仮想ホスト名を追加します。これは私の中にあるものです:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
# VIRTUAL Host START
127.0.0.1 localhost
127.0.0.1 mysite.local
# VIRTUAL Host STOP
ここでApacheを再起動すると、準備が整います。
Sudo apachectl restart
また、警告としてラベル付けされています。これは、エラーログの重要な行です。
Warning: DocumentRoot [/usr/docs/dummy-Host.example.com] does not exist
Apacheは、話しかけたときに解決されるファイルを保持するディレクトリを探しています。どうやら、このディレクトリは存在しないため、Apacheは何も解決できません。ディレクトリを作成し、そこにindex.html
ファイルを配置するか、設定ファイルを編集してApacheが別のディレクトリを指すようにします。