Googleにはこのような質問が何百万もありますが、問題の解決策が見つかりません。私のMacへのデフォルトのApacheインストールでは、すべて(デフォルトディレクトリ、ユーザーホームディレクトリ、仮想サーバーなど)に対して403Forbiddenエラーが発生します。設定ファイルを選別した後、nginxを試してみると思いました。
Nginxは、ホームディレクトリからファイルを正常に提供しますが、ユーザーディレクトリのサブフォルダーからファイルを提供しません。単純な仮想ホストを構成しましたが、index.htmlを要求すると403 forbiddenが返されます。
Nginxのログファイルのエラーメッセージは非常に明確です-ファイルを読み取ることができません:
2011/01/04 16:13:54 [error] 96440#0: *11 open() "/Users/me/Documents/workspace/mobile/index.html" failed (13: Permission denied), client: 127.0.0.1, server: local.test.com, request: "GET /index.html HTTP/1.1", Host: "local.test.com"
私はこのディレクトリをすべての人に公開しました:
drwxrwxrwx 6 me admin 204B Dec 31 20:49 mobile
そしてその中のすべてのファイル:
$ ls -lah mobile/
total 24
drwxrwxrwx 6 me admin 204B Dec 31 20:49 .
drwxr-xr-x 71 me me 2.4K Dec 31 20:41 ..
-rw-r--r--@ 1 me me 6.0K Jan 2 18:58 .DS_Store
-rwxrwxrwx 1 me admin 2.1K Jan 4 14:22 index.html
drwxrwxrwx 5 me admin 170B Dec 31 20:45 nbproject
drwxrwxrwx 5 me admin 170B Jan 2 18:58 script
それでも、nginxプロセスがindex.htmlを読み取れない理由を理解できません。 「nobody」ユーザーとして実行されていますが、アクセス許可は誰でも読み取れるように設定されています。
/ Users/me、/ Users/me/Documentsおよび/ Users/me/Documents/workspaceの権限は何ですか?ツリー内のすべてのフォルダーは、nobody
ユーザーが読み取り可能である必要があります。