Ich versuche , eine lokale Umgebung auf meine neue MacBook Air 13" zu setzen: integrierten Apache mit meiner eigenen DocumentRoot
, PHP und MySQL ich in der Regel aktualisieren. /etc/hosts
Nur meine lokalen Websites mit einem hübschen permalink auszuführen: local/example
. Für Referenzen, ich in der Regel prüfen:
- Wie verwandle ich Mac OS X Lion in einen Webserver?
- Aktivieren von Apache in Mac OS X Mountaion Lion
- Apache-Berechtigungen
Dieses Mal erhalte ich einfach jedes Mal , wenn ich , oder drücke, einen 403 Forbidden- Fehler . Zuerst habe ich über das Terminal gesehen, dass sowohl Apache als auch PHP ausgeführt werden (obwohl ich keine PHP-Seiten anzeigen kann). dann habe ich alle Berechtigungen gemäß den Apache-Berechtigungen aktualisiert ; jetzt bin ich nur noch verzweifelt Hier sind die relevanten Apache-Konfigurationen:127.0.0.1
localhost
local
/etc/hosts
( Datei anzeigen - eine Zeile hinzugefügt)/etc/apache2/httpd.conf
( Datei anzeigen - aktualisiert dieDocumentRoot
)/etc/apache2/users/joao.conf
( Datei anzeigen - diese Datei erstellt)/etc/apache2/extra/httpd-vhosts.conf
( Datei anzeigen - aktualisiertVirtualHost
)
Es sieht so aus, als würde mir Apache irgendwie den Zugang zu meinem verweigern DocumentRoot
(was übrigens so ist ~/Sites
). Da ~/Sites
es sich eigentlich um einen Symlink handelt, habe ich dann versucht, DocumentRoot
mit den folgenden Pfaden zu aktualisieren (alle zeigen auf dasselbe Verzeichnis):
~/Sites
/Users/joao/Sites
/Users/joao/Dropbox/Workflow/Sites
(das ursprüngliche Verzeichnis)
403 immer noch werfen . Irgendwelche Ideen, wie man das behebt / debuggt?
Schnelles Update - so /var/log/apache2/joao.pt-error_log
sieht mein Update aus:
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:47 2013] [error] [client ::1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:47 2013] [error] [client ::1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:48 2013] [error] [client ::1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:48 2013] [error] [client ::1] (13)Permission denied: access to /favicon.ico denied
/Sites
(in meinem/
Stammordner) erstellt und meine Dateien dort abgelegt und die Optionen für Alias und Verzeichnis entsprechend konfiguriert. Hat gut funktioniert.Ich aktualisiere auf macOSS Sierra , Version 10.12
Ich habe das gleiche Problem, ich habe zwei Dinge getan, um es richtig zu beheben. Es folgen meine Ansätze.
1) Überprüfen Sie die Datei " /private/etc/apache2/extra/httpd-userdir.conf ". Veränderung
zu
2) ** Und bearbeite deine " /etc/apache2/httpd.conf"
Veränderung
zu
Schließlich sieht Ihr Doc-Root folgendermaßen aus:
3) Starten Sie Apache neu
Wenn Sie immer noch mit dem Problem konfrontiert sind, überprüfen Sie bitte, wie Sie Apache in macOS Sierra 10.12 einrichten
quelle
Ich behebe dies im Allgemeinen, indem ich den Apache-Benutzer in lokalen Umgebungen und auf Computern, auf denen der einzige Benutzer, der Apache verwendet, ich bin, auf mich selbst einstelle. In
/private/etc/apache2/httpd.conf
setzen SieUser
auf Ihren Benutzernamen von_www
zB:->
Und dann starte Apache neu:
Zusätzliche Schritte:
Wenn Sie aktive Sitzungen haben, geben sie Berechtigungsfehler, da sie immer noch im Besitz von sind
_www
. Besitze sie:Implikationen:
Danach wird Apache (und PHP et al.) Wie Sie ausgeführt und erhält Lese- / Schreibberechtigung für alle Dateien, die Sie über Lese- / Schreibberechtigung verfügen. Da es sich jedoch nur um eine lokale Entwicklungsumgebung handelt, sollte dies kein Problem sein, es sei denn, Sie haben keine Regeln zum Blockieren von Apache in Ihrer Firewall und lassen fragwürdige Dateien wie Datei-Explorer, Shells und Skripte, die möglicherweise Schwachstellen enthalten, unter Apache laufen. In diesem Fall kann jeder, einschließlich Ihres öffentlichen WLAN-Nachbarn, in ein Café eintreten
http://<your IP>
und alles tun, was diese Skripte ihnen erlauben.Tatsächlich sollten Sie dies unabhängig von den von Ihnen ausgeführten Skripten verhindern oder auch dann, wenn Sie den Apache-Benutzer nicht auf sich selbst festlegen, da Sie wahrscheinlich nicht möchten, dass zufällige Außenstehende den Inhalt Ihrer Skripten sehen können
localhost
.Verhütung:
Lassen Sie Apache nur localhost hören. Wieder in
httpd.conf
:->
Und starte Apache erneut:
Deaktivieren Sie Apache in der Anwendungsfirewall (beachten Sie, dass Sie es möglicherweise bereits deaktiviert haben, wenn Sie
Deny
beim ersten Ausführen von Apache auf die Frage geklickt haben ):System Preferences
»Security & Privacy
»Firewall
.Firewall Options
.+
Schaltfläche./usr/sbin/httpd
und klicken Sie aufAdd
(Wennhttpd
es dort nicht angezeigt wird, können Sie im Terminal danach suchenwhich httpd
).httpd
und wählen SieBlock incoming connections
.OK
.Laden Sie die Firewall neu:
Beschränken Sie PHP auf das Dokumentstammverzeichnis. In
php.ini
:(
/var/tmp/
ist für Sitzungen)Verwenden Sie alle drei Lösungen, um sich abzusichern, falls eine aus irgendeinem Grund deaktiviert wird.
- Beachten Sie, dass meine aktive Sprache auf meinem Computer nicht Englisch ist und die Formulierung möglicherweise ein wenig anders ist (Menüoptionen und -formulierungen können unterschiedlich sein, unabhängig von der Sprache in verschiedenen OS X-Versionen).
- Zeilen, die mit beginnen,
$
müssen in der Befehlszeile (Terminal oder iTerm usw.) eingegeben und$
entfernt werden.quelle
Ich habe gerade mein Problem behoben, indem ich Berechtigungen nicht nur für das
DocumentRoot
Verzeichnis, sondern auch für alle übergeordneten Verzeichnisse festgelegt habe. So habe ich es gemacht .quelle
Die folgenden Schritte funktionierten für mich in High Sierra mit Apache 2.4
(Basierend auf dem folgenden hervorragenden Tutorial: http://www.cgi101.com/book/connect/mac.html , aktualisiert mit zusätzlichen Schritten für Versionsunterschiede)
Verschieben Sie die Datei nach:
Stellen Sie sicher, dass die Datei über Ausführungsberechtigungen verfügt:
Wenn nicht verwenden:
Kommentieren Sie die folgenden Zeilen in /etc/apache2/httpd.conf aus
Ändern Sie auch die Zeilengruppe "/ Library / WebServer / CGI-Executables" in:
Dann starte Apache neu:
Fast bei jeder neuen MacOS-Version gehen die Änderungen verloren und Sie müssen die Arbeit wiederholen und sogar verschiedene Schritte ausführen, um sie zu beheben. Ihr bester Freund sind die Apache-Protokolle in / var / log / apache2 / (/ var / log / apache2 / error_log).
quelle
Ich habe Zugriffssteuerungslisten zum Festlegen von Berechtigungen verwendet. Befolgen Sie dazu die Anweisungen unter " Festlegen von Datei- und Verzeichnisberechtigungen für Apache unter Mac OS X ".
Dann las ich " (13) Permission Denied " (verknüpft mit der Antwort von João Ramos ) und versuchte, der ACL "execute" hinzuzufügen. Das hat funktioniert.
quelle
Starte deinen Computer neu! Das hat bei mir funktioniert.
Aber zunächst einmal hatte ich den Benutzer unter Apache selbst verändert (von _www), da es sich um eine lokale / Testumgebung ist. Letztendlich hat es also etwas mit Berechtigungen zu tun.
Starten Sie dann den Computer wie Windows neu;).
quelle
OP beschreibt ein Problem, das beim Einrichten einer lokalen Webserver-Umgebung auf einem Mac unter Verwendung von Apache, PHP und MySQL mit einem benutzerdefinierten DocumentRoot auftritt. Außerdem wird die Verwendung von VirtualHost (vhost) erwähnt. OP meldet, dass beim Zugriff auf localhost ein 403 Forbidden-Fehler auftritt.
Ein Artikel bei coolestguidesontheplanet beschreibt, wie das Einrichten virtueller Hosts in Apache zum "Verlust von Localhost" führt. Mit anderen Worten, die Hauptursache für das OP-Problem könnte eine unvollständige Aktivierung von vhosts sein.
In diesem Artikel wird erläutert, wie localhost in einer vhost-Umgebung repariert wird.
Außerdem erfahren Sie, wie Sie "Berechtigungsprobleme mit Updates und Authentifizierungen" beheben, die mit "Verwenden des Ordners Users / username / Sites für vhosts" zusammenhängen.
https://coolestguidesontheplanet.com/set-virtual-hosts-apache-mac-osx-10-10-yosemite/
quelle