web-dev-qa-db-ja.com

Mac OS Xローカルホストでの403 Forbiddenエラー

Mac OS X 10.6のシステム環境設定でWeb共有を設定し、そこにあるリンクをクリックしました。残念ながら、Apacheは次の403エラーを出しました。

禁止

このサーバーの/~myusername/index.htmlにアクセスする権限がありません。

アクセスログが表示されます:10.0.1.2 - - [30/Jun/2010:16:25:15 -0700] "GET /~myusername/ HTTP/1.1" 403 210

エラーログが表示されます:[Wed Jun 30 16:26:09 2010] [error] [client 10.0.1.2] client denied by server configuration: /Users/myusername/Sites/

不思議なことに、 http:// localhost へのアクセスはうまくいきます。私が問題を抱えている2つのユーザーフォルダーが原因で、システムアップグレードよりも新しい他のユーザーフォルダーが正常に機能しています。

Leopardで自分のマシンでこれを動作させたことがあるので、~/Sitesを755に変更しましたが、効果はありませんでした。助言がありますか?私はAppleこのような何かを台無しにすることを想像することができないので、私はこれを引き起こした私のマシンに何かをしたと思います。

私はPEAR with これらの指示 を設定しましたが、それが原因であるかどうかはわかりません。

22
waiwai933

アップルにはこの問題のサポートドキュメントがあります 。問題の修正には、ファイル_/etc/Apache2/users/yourusername.conf_(yourusernameがアカウントshort nameである、たとえばdanielbeckを作成します。通常は_/Users_)のホームフォルダーの名前と次の内容:

_<Directory "/Users/yourusername/Sites/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
_

その後、_Sudo chown root:wheel /etc/Apache2/users/yourusername.conf_を実行してApacheを再起動します。

22
Daniel Beck

Apacheがファイルを表示するには、Apacheを実行するユーザー(おそらくwwwまたは_www)がこれらのユーザーのサイトディレクトリにアクセスできる必要があります。 ~/Sitesから/へのパスを通過できるようにする必要があるため、~/Sitesの内容への読み取り/実行アクセス権は十分ではありません。そのため、//Users/Users/myusername、および/Users/myusername/Sitesはすべて、少なくともa+x権限を持っていることを確認してください(ディレクトリのeXecuteビットにより、ユーザークラスは、ディレクトリー(読み取りアクセスが許可されていない場合でも)。

ls -lde / /Users/ /Users/myusername/ /Users/myusername/Sites

それらのディレクトリのいずれかが最後のxセット(「その他」のセット)を表示しない場合は、chmod a+x ...のようなものを使用して、そのディレクトリに設定します。

これらのディレクトリのいずれかのACLが、ユーザーwwwがアクセスを明示的に拒否されていることを示している場合は、chmodへの適切な引数を使用してACLを修正します。

15
Spiff

参考までに、私はこれを扱っただけで、ここでの答えは私の特定のケースでは機能しませんでした。私は仮想ホストを構成していましたが、もっと重要なことに、htaccessファイルを実際に機能させる必要がありました。

/etc/Apache2/users/USERNAME.confファイルで「AllowOverride None」を「AllowOverride All」に変更したところ、すべてのサイトが禁止され始めました。

元に戻した後、httpd-vhosts.confファイルの1つのサイトに対してのみ変更しました。そのサイトのみが禁止されました。

ログを調べて、問題がURLの書き換えとFollowSymLinksの欠如にあることを確認した後、USERNAME.confファイルに戻りました。 「AllowOverride None」を「AllowOverride All」に切り替え、次の行に「Options + FollowSymLinks」を追加しました。

物事は働き始めました。私はWindowsでxamppを使用していましたが、私のようなダミーのために、サーバー全体でこれらの設定の多くが既に設定されていました。

5
Jake

2011年10月のLionの更新も追加する必要がありました

UserDirが有効になっているので、/ etc/Apache2/extra/httpd-userdir.confは次のようになります。

UserDir enabled 
UserDir Sites

#
# Users might not be in /Users/*/Sites, so use user-specific config files.
#
Include /private/etc/Apache2/users/*.conf

<IfModule bonjour_module>
   RegisterUserSite customized-users
</IfModule>
2
nunya

同じ問題がありました。私の(古い)アカウントにアクセスできませんでしたが、Lionへのアップグレード後に作成された別のユーザーのアカウントは問題なく機能しました。

/etc/Apache2/users/USERNAME.confが次のようになっていることを確認してください:

<Directory "/Users/USERNAME/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

sudo chown root:wheel /etc/Apache2/users/USERNAME.confを実行します

このアクセス許可設定はOSのアップグレード中に設定されていないようで、Apacheユーザーは構成ファイルを読み取ることができず、エラーがスローされます。

少なくともこれで解決しました。

2
Arve Nygård

最初の質問のコメントから会話を続ける-/etc/Apache2/httpd.confファイル。私のマシンでは、これがあります:

# User home directories
Include /private/etc/Apache2/extra/httpd-userdir.conf

あなたのコメントはコメントアウトされているようです。 10.5から10.6に移動してデフォルトが変更されたときに、手作業でこれを変更したことを漠然と覚えています。

これはおそらく明白ですが、ファイルはrootが所有するため、Sudoを使用してファイルを編集する必要があります。

1
Michael H.

私のケースはXAMPP + Mac OS X 10.7 + Dropboxフォルダ内のディレクトリです(Stack Overflowで別の question を相互参照しています)

403 Access ForbiddenはApacheによって報告されているため、上記のコメントに従って、/XAMPP/xamppfiles/etc/httpd.confのUserをUser nobodyからUser my_user_nameに変更しました。 Apacheを再起動すると、問題なく動作します。

1
Raptor

おそらく Indexes がオンになっていない可能性があります。そうでない場合は、インデックスファイルを作成する必要があります(index.htmlまたはindex.php)またはファイルを明示的に指定します。つまり、http://localhost/~me/mypage.html

0
Josh K