web-dev-qa-db-fra.com

Erreur 403 Forbidden sur Mac OS X Localhost

J'ai configuré le partage Web dans les Préférences Système sous Mac OS X 10.6 et j'ai cliqué sur le lien qu'il m'avait indiqué. Malheureusement, Apache m'a donné cette erreur 403:

interdit

Vous n'êtes pas autorisé à accéder à /~myusername/index.html sur ce serveur.

Journal des accès affiché: 10.0.1.2 - - [30/Jun/2010:16:25:15 -0700] "GET /~myusername/ HTTP/1.1" 403 210

Le journal des erreurs affiche: [Wed Jun 30 16:26:09 2010] [error] [client 10.0.1.2] client denied by server configuration: /Users/myusername/Sites/

Curieusement, accéder à http: // localhost fonctionne bien. Cela ne concerne que deux des dossiers d’utilisateurs avec lesquels j’ai des problèmes. L’autre dossier, plus récent que la mise à niveau de mon système, fonctionne bien.

Cela a déjà fonctionné sur ma machine sous Leopard, alors j’ai tout modifié en ~/Sites à 755, ce qui n’a fait aucun bien. Aucune suggestion? Je suppose que cela a été causé à ma machine, car je ne peux pas imaginer qu'Apple fasse des bêtises.

J'ai mis en place PEAR avec ces instructions , mais je ne sais pas si cela pourrait en être la cause.

22
waiwai933

Apple dispose d'un document d'assistance pour résoudre ce problème . Résoudre le problème implique la création d'un fichier /etc/Apache2/users/yourusername.conf ( votre nom d'utilisateur étant le compte nom abrégé , par exemple danielbeck - il s'agit généralement du nom de votre domicile. dossier dans /Users) avec le contenu suivant:

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

Ensuite, lancez Sudo chown root:wheel /etc/Apache2/users/yourusername.conf et redémarrez Apache.

22
Daniel Beck

Pour qu'Apache puisse voir le fichier, l'utilisateur sous lequel il s'exécute (probablement www ou _www) doit avoir accès aux répertoires Sites de ces utilisateurs. Avoir un accès en lecture/exécution au contenu de ~/Sites ne suffit pas, car il doit être autorisé à parcourir le chemin de / vers le chemin de ~/Sites. Assurez-vous donc que /, /Users, /Users/myusername et /Users/myusername/Sites ont tous au moins l'autorisation a+x (le bit eXecute sur les répertoires permet à cette classe d'utilisateurs de parcourir le répertoire, même si l'accès en lecture n'est pas autorisé).

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

Si l'un de ces répertoires ne montre pas le dernier ensemble x (celui de "autres"), utilisez quelque chose comme chmod a+x ... pour le définir pour ce répertoire.

Si la liste de contrôle d'accès de l'un de ces répertoires indique que l'accès a été spécifiquement refusé à l'utilisateur www, utilisez les arguments appropriés à chmod pour réparer les listes de contrôle d'accès.

15
Spiff

Pour référence, je viens de traiter cela, et aucune des réponses ici n'a fonctionné dans mon cas spécifique. J'étais en train de configurer des hôtes virtuels, mais plus important encore, j'avais besoin que mes fichiers htaccess fonctionnent réellement.

J'ai remplacé "AllowOverride None" par "AllowOverride All" dans mon fichier /etc/Apache2/users/USERNAME.conf et tous mes sites ont commencé à être interdits.

Je l'ai modifié, puis modifié pour un seul site de mon fichier httpd-vhosts.conf, et seul ce site était interdit.

Après avoir examiné les journaux et constaté que le problème était lié à la réécriture de l'URL et au manque de FollowSymLinks, je suis retourné au fichier USERNAME.conf. Je remplace "AllowOverride None" par "AllowOverride All" et ajoute "Options + FollowSymLinks" à la ligne suivante.

Les choses ont commencé à fonctionner. Je venais d’utiliser xampp sous Windows et beaucoup de ces paramètres étaient déjà configurés sur tout le serveur pour des nuls comme moi.

5
Jake

mise à jour pour Lion en 10/2011, je devais aussi ajouter

UserDir activé donc mon /etc/Apache2/extra/httpd-userdir.conf est comme ceci:

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

J'ai eu le même problème: mon (ancien) compte n'était pas accessible, mais le compte d'un autre utilisateur créé après la mise à niveau vers Lion fonctionnait parfaitement.

Après vous être assuré que votre /etc/Apache2/users/USERNAME.conf ressemble à ceci:

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

faire une racine chown Sudo: wheel /etc/Apache2/users/USERNAME.conf

il semble que ce paramètre d'autorisation ne soit pas défini lors de la mise à niveau du système d'exploitation et que l'utilisateur Apache ne peut pas lire le fichier de configuration et génère une erreur.

Au moins, ça l'a résolu pour moi.

2
Arve Nygård

Poursuite de la conversation à partir des commentaires de la question initiale - Consultez votre fichier /etc/Apache2/httpd.conf. Sur ma machine, j'ai ceci:

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

Je soupçonne que le vôtre est commenté. Je me souviens vaguement d'avoir changé cela manuellement en passant de 10,5 à 10,6 et la valeur par défaut changée.

Ceci est probablement évident, mais vous devrez utiliser Sudo pour éditer le fichier car il appartiendra à root.

1
Michael H.

Mon cas est XAMPP + Mac OS X 10.7 + Répertoire dans un dossier Dropbox (renvoi à une autre question dans le dépassement de capacité).

403 Access Forbidden est rapporté par Apache. J'ai donc suivi le commentaire ci-dessus pour changer l'utilisateur dans le /XAMPP/xamppfiles/etc/httpd.conf, de User nobody à User my_user_name. Redémarrez Apache et cela fonctionne bien.

1
Raptor

Vous n'avez probablement pas index activé. Sinon, vous devrez soit créer un fichier d'index (index.html ou index.php), soit spécifier explicitement le fichier, c'est-à-dire http://localhost/~me/mypage.html.

0
Josh K