Ich versuche LAMP auf OSx Lion zum Laufen zu bringen und habe ein paar Probleme.
Haben Apache, MySQL und PHP eingerichtet und funktionieren einwandfrei. Habe unter Sharing in den Einstellungen "Website" aktiviert. Der ursprüngliche Ordner ~ / benutzername / Sites wurde entfernt und eine symbolische Verknüpfung von Sites mit einem Verzeichnis ohne ~ / benutzername erstellt.
Wenn ich nun versuche, http: // localhost / ~ user_name auszuführen , erhalte ich:
Verboten Sie haben keine Berechtigung, auf / ~ Benutzername auf diesem Server zuzugreifen.
Wo und wie ändere ich diese Berechtigungen?
~/Sites
Ordner neu erstellen, mindestens eine HTML-Datei darin erstellen und versuchen, über darauf zuzugreifenhttp://localhost/~user/the-file.html
?/Library/WebServer/Documents
Behalten Sie einfach den Standard-Dokumentenstamm ( ) bei und erstellen Sie einen Symlink dazu in Ihrem privaten Ordner.Antworten:
Für den Zugriff auf Websites auf Ihrem "localhost" sind mehrere Berechtigungen erforderlich. Der Inhalt von localhost befindet sich möglicherweise in Ihrem Sites-Verzeichnis. In diesem Fall können diese Befehle dazu beitragen, dass keine "verbotenen" Nachrichten angezeigt werden.
Stellen Sie sicher, dass das Benutzerverzeichnis den Zugriff auf das Leseverzeichnis ermöglicht:
Stellen Sie sicher, dass das Benutzernamenverzeichnis den Zugriff auf das Leseverzeichnis ermöglicht:
Stellen Sie sicher, dass Ihr Sites-Verzeichnis den Zugriff auf das Leseverzeichnis zulässt:
Jedes Unterverzeichnis von Sites benötigt Lesezugriff:
Jede Datei in Sites und Unterverzeichnissen benötigt Lesezugriff:
Apache verwendet die Gruppe _www. Um Apache vollständigen Zugriff auf alle Elemente im Verzeichnis Sites zu gewähren, legen Sie die erweiterten Attribute folgendermaßen fest:
quelle
Vorausgesetzt, nur wenige Benutzer verwenden OS X in einer Produktionsumgebung, ist es hilfreich, Apache mit dem Dokumentstamm das tun zu lassen, was es will. Sie können dies mit der "Vererbungs" -Funktion von ACLs tun:
Mit dem obigen Befehl erhält die Standard-Apache-Gruppe vollständigen Lese- / Schreibzugriff auf alle Elemente im Standard-Dokumentenstamm und es werden "Vererbungs" -Flags angewendet, sodass alle neu erstellten Dateien / Verzeichnisse auch von Apache beschrieben werden können, selbst wenn Apache sie nicht erstellt hat.
Ich möchte auch diesen Befehl ausführen:
Dadurch erhalten "Mitarbeiter" -Nutzer (im Grunde genommen alle "echten" Benutzer) uneingeschränkten Zugriff auf alles, auch auf von Apache erstellte Dateien.
quelle
Sie können
chmod
die Berechtigungen für den Ordner festlegen, in dem sich Ihre Site befindet. Vergewissern Sie sich, dass der Benutzer Apache ausgeführt wird, da er möglicherweise irgendetwas in diesem Ordner liest.cd /path/to/website
chmod -r 644 .
Das sollte es tun. Beachten Sie, dass dies Ihre PHP-Quelldateien für jedermann lesbar macht.
quelle
chmod -R u=rwX,go=rX .
würde funktionieren, weil chmod die "X" -Zulassung als "x, wenn es Sinn macht" behandelt.