Ich habe die Webfreigabe in den Systemeinstellungen unter Mac OS X 10.6 eingerichtet und auf den dort angegebenen Link geklickt. Leider hat mir Apache diesen 403-Fehler gegeben:
verboten
Sie haben auf diesem Server keine Berechtigung, auf /~myusername/index.html zuzugreifen.
Das Zugriffsprotokoll zeigt Folgendes an: 10.0.1.2 - - [30/Jun/2010:16:25:15 -0700] "GET /~myusername/ HTTP/1.1" 403 210
Fehlerprotokoll wird angezeigt: [Wed Jun 30 16:26:09 2010] [error] [client 10.0.1.2] client denied by server configuration: /Users/myusername/Sites/
Seltsamerweise funktioniert der Zugriff auf http: // localhost einwandfrei. Es ist nur mit zwei der Benutzerordner, mit denen ich Probleme habe, der andere Benutzerordner, der neuer als mein System-Upgrade ist, funktioniert einwandfrei.
Ich hatte das schon einmal auf meinem Rechner in Leopard, also habe ich alles ~/Sites
auf 755 geändert , was nicht gut war. Irgendwelche Vorschläge? Ich nehme an, dass ich etwas an meinem Computer getan habe, das dies verursacht hat, da ich mir nicht vorstellen kann, dass Apple etwas in die Irre führt.
Ich habe PEAR mit diesen Anweisungen eingerichtet , aber ich habe keine Ahnung, ob dies die Ursache sein könnte.
quelle
Antworten:
Apple hat ein Support-Dokument für dieses Problem . Um das Problem zu beheben , müssen Sie eine Datei mit folgendem Inhalt erstellen
/etc/apache2/users/yourusername.conf
( Ihr Benutzername ist der Kurzname des Kontos , z. B.danielbeck
der Name Ihres privaten Ordners/Users
):Führen Sie anschließend
sudo chown root:wheel /etc/apache2/users/yourusername.conf
Apache aus und starten Sie es neu.quelle
sudo apachectl restart
in deinem terminal aus.Damit Apache die Datei sehen kann, muss der Benutzer, unter dem Apache ausgeführt wird (wahrscheinlich
www
oder_www
), Zugriff auf die Sites-Verzeichnisse dieser Benutzer haben. Ein Lese- / Ausführungszugriff auf den Inhalt von~/Sites
ist nicht ausreichend, da er von/
unten nach unten durchlaufen werden muss~/Sites
. So sicher machen/
,/Users
,/Users/myusername
, und/Users/myusername/Sites
alle haben zumindest diea+x
Erlaubnis (der Ausführungs - Bit auf Verzeichnisse ermöglicht , dass Benutzerklasse das Verzeichnis zu durchlaufen, auch wenn Lesezugriff ist nicht erlaubt).Wenn in einem dieser Verzeichnisse nicht der letzte
x
Satz angezeigt wird (der für "andere"), verwenden Sie so etwas wiechmod a+x ...
diesen für dieses Verzeichnis.Wenn die
www
Zugriffssteuerungsliste für eines dieser Verzeichnisse anzeigt, dass dem Benutzer der Zugriff ausdrücklich verweigert wurde, verwenden Sie die entsprechenden Argumentechmod
, um die Zugriffssteuerungslisten zu korrigieren.quelle
Als Referenz habe ich mich nur darum gekümmert und keine der Antworten hier hat in meinem speziellen Fall funktioniert. Ich habe virtuelle Hosts konfiguriert, aber was noch wichtiger ist, ich brauchte meine htaccess-Dateien, um tatsächlich zu funktionieren.
Ich habe in meiner /etc/apache2/users/USERNAME.conf-Datei bei "AllowOverride None" in "AllowOverride All" geändert und alle meine Websites wurden verboten.
Ich habe es zurück- und dann nur für eine Site in meiner httpd-vhosts.conf-Datei geändert, und nur diese Site wurde verboten.
Nachdem ich mir die Protokolle angesehen hatte und das Problem mit dem Umschreiben der URLs und dem Fehlen von FollowSymLinks festgestellt hatte, ging ich zurück zur Datei USERNAME.conf. Ich schalte "AllowOverride None" auf "AllowOverride All" und füge in der nächsten Zeile "Options + FollowSymLinks" hinzu.
Die Dinge begannen zu funktionieren. Ich habe xampp unter Windows verwendet und viele dieser Einstellungen waren für Dummies wie mich bereits serverweit festgelegt.
quelle
Options +FollowSymLinks
wirkte wie ein Zauber.Ich hatte das gleiche Problem: Auf mein (altes) Konto konnte nicht zugegriffen werden, aber das Konto eines anderen Benutzers, das nach dem Upgrade auf Lion erstellt wurde, funktionierte einwandfrei.
Nachdem Sie sichergestellt haben, dass Ihre /etc/apache2/users/USERNAME.conf folgendermaßen aussieht:
mache einen sudo chown root: wheel /etc/apache2/users/USERNAME.conf
Es scheint, dass diese Berechtigungseinstellung während des Betriebssystem-Upgrades nicht festgelegt wurde und der Apache-Benutzer die Konfigurationsdatei nicht lesen kann und einen Fehler auslöst.
Zumindest hat das für mich geklärt.
quelle
sudo apachectl restart
.Update für Lion 10/2011 musste ich auch hinzufügen
UserDir ist so aktiviert, dass meine /etc/apache2/extra/httpd-userdir.conf so aussieht:
quelle
Fortsetzung der Konversation mit den Kommentaren der ersten Frage - Überprüfen Sie Ihre
/etc/apache2/httpd.conf
Datei. Auf meinem Computer habe ich Folgendes:Ich vermute, deine ist auskommentiert. Ich erinnere mich vage daran, dies von Hand geändert zu haben, als ich von 10.5 auf 10.6 umgestiegen bin und die Standardeinstellung geändert wurde.
Dies ist wahrscheinlich offensichtlich, aber Sie müssen es verwenden
sudo
, um die Datei zu bearbeiten, da sie im Besitz von root ist.quelle
Mein Fall ist XAMPP + Mac OS X 10.7 + Verzeichnis im Dropbox-Ordner (Querverweis auf meine andere Frage im Stapelüberlauf)
403 Access Forbidden wird von Apache gemeldet, daher bin ich dem obigen Kommentar gefolgt, um den Benutzer in
/XAMPP/xamppfiles/etc/httpd.conf
, vonUser nobody
nach zu ändernUser my_user_name
. Starten Sie Apache neu und es funktioniert einwandfrei.quelle
Sie haben wahrscheinlich keine Indizes aktiviert . Wenn Sie dies nicht tun, müssen Sie entweder eine Indexdatei (
index.html
oderindex.php
) erstellen oder die Datei explizit angeben, dhttp://localhost/~me/mypage.html
. H.quelle
~myusername
glaube ich.http://localhost/
sollte zeigen auf/Users/youruser/Sites/
.