Wie bekomme ich mein Benutzerverzeichnis wieder zum Web-Sharing?

Ich hatte Web-Sharing in Lion und eine Website unter aktiviert http://localhost/~user, wo usersich mein Benutzerverzeichnis befindet. Als ich auf Mountain Lion aktualisiert habe, blieb die Webfreigabe (Apache) aktiviert und ich kann zu localhost gehen und die Meldung „Es funktioniert!“ erhalten. Standardwebseite, aber ich kann nicht mehr auf meine Benutzerseite zugreifen. Der Fehler ist

Verboten

Sie haben keine Berechtigung, auf /~user/ auf diesem Server zuzugreifen.

Wie reaktiviere ich die Webseite meines Benutzerverzeichnisses?

Antworten (5)

So können Sie die Webseite über die Befehlszeile mit Terminal wieder aktivieren.

Kopieren Sie diese zuerst und fügen Sie sie in Terminal ein. enterMöglicherweise müssen Sie nach dem Einfügen drücken , um es auszuführen. Es wird Sie nach Ihrem Passwort fragen, da es eine Datei zu Ihrem Systemverzeichnis hinzufügt.

USER_DIR=$(basename $(echo ~))
sudo bash -c "cat > /etc/apache2/users/$USER_DIR.conf" <<TEXT
<Directory "/Users/$USER_DIR/Sites">
     Options Indexes MultiViews
     AllowOverride None
     Order allow,deny
     Allow from all
</Directory>
TEXT

Führen Sie dann diesen Befehl aus, um den Webserver neu zu starten:

sudo apachectl restart
Entschuldigung, mein Fehler, Sie brauchen es auch für den Namen der conf-Datei. Trotzdem sollte auch $(basename ~) funktionieren
Ich habe etwas etwas anderes als das gemacht. Vielen Dank an Indiv für die Informationen, die mir geholfen haben, eine benutzerdefinierte Lösung für mein Setup zu erstellen. Ich habe den "Directory"-Block, den Sie haben, zu /etc/apache2/extra/httpd-userdir.conf mit einem "*" anstelle von "$USER_DIR" hinzugefügt. Dadurch werden Benutzerverzeichnisse für alle Benutzer aktiviert, die über ein „Sites“-Verzeichnis verfügen.

Ich musste FollowSymLinksfolgendes zu meinem hinzufügen /etc/apache2/users/username.conf:

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

( usernamemuss durch Ihren echten Benutzernamen ersetzt werden)

Hier ist ein einzeiliger Terminalbefehl, der den integrierten Apache-Server von macOS aktiviert und es Ihnen ermöglicht, das Sites-Verzeichnis in Ihrem Benutzerordner zu verwenden. Es ist zum jetzigen Zeitpunkt mit der neuesten Version von macOS (Mojave) kompatibel und wurde auch für die Arbeit mit Sierra und High Sierra getestet. Ich vermute, dass es auch mit anderen Versionen funktionieren wird – ich habe mein Bestes getan, um es zukunftssicher zu schreiben.

mkdir ~/Sites ; sudo bash -c "printf '<Directory \"/Users/`whoami`/Sites/\">\n\tAddLanguage en .en\n\tAllowOverride All\n\tOptions Indexes MultiViews FollowSymLinks\n\tRequire all granted\n</Directory>' > /etc/apache2/users/`whoami`.conf ; echo 'AddDefaultCharset utf-8' >> /etc/apache2/httpd.conf ; sed -i '' '/LoadModule userdir_module libexec\/apache2\/mod_userdir.so/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/LoadModule php[0-9]_module libexec\/apache2\/libphp[0-9].so/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/Include \/private\/etc\/apache2\/extra\/httpd-userdir.conf/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/Include \/private\/etc\/apache2\/users\/\*.conf/s/^#*//g' /etc/apache2/extra/httpd-userdir.conf ; apachectl start"

† Nun, technisch gesehen ist es eine Zeile, auch wenn sie wirklich sehr lang ist ...

Siehe https://apple.stackexchange.com/a/57555/9058 , grundsätzlich müssen Sie die Webfreigabe pro Benutzer manuell aktivieren (mit Terminal.app).

Mountain Lion entfernt die Konfigurationsdatei, die den Webzugriff auf Ihr Benutzerverzeichnis ermöglicht. Die Konfigurationsdateien sind im /etc/apache2/users/. Das fehlende ist user.conf, wobei user Ihr kurzer Benutzername ist.

Wenn Sie nicht mit der Befehlszeile herumspielen möchten, können Sie hier ein Applescript ausführen, um eine Konfigurationsdatei für Ihren Benutzer zu erstellen. Es wird Sie nach Ihrem Passwort fragen, da es die Datei in einem Verzeichnis auf Systemebene erstellen muss und erhöhte Berechtigungen benötigt.

Öffnen Sie in Ihrem Anwendungsordner oder Launchpad Other > Applescript Editor. Kopieren Sie das folgende Skript und fügen Sie es in den Textbereich des Applescript-Editors ein. Klicken Sie dann auf die Schaltfläche Ausführen .

set userHome to (short user name of (system info))
set configFile to "/etc/apache2/users/" & userHome & ".conf"
set configFileContents to "<Directory \"/Users/" & userHome & "/Sites/\">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>"

do shell script "echo '" & configFileContents & "' > " & configFile with administrator privileges
do shell script "/usr/sbin/apachectl restart" with administrator privileges

Wenn das Skript abgeschlossen ist, sollten Sie auf Ihre Webseite auf Benutzerebene zugreifen können.