Wie kann ich mein Benutzerverzeichnis wieder für die Webfreigabe einrichten?

26

Ich hatte die Webfreigabe in Lion und auf einer Website unter aktiviert http://localhost/~user, auf der usersich mein Benutzerverzeichnis befindet. Beim Upgrade auf Mountain Lion blieb die Webfreigabe (Apache) weiterhin aktiviert, und ich kann zu localhost gehen und die Meldung "It works!" 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 aktiviere ich die Webseite meines Benutzerverzeichnisses wieder?

indiv
quelle

Antworten:

18

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

Kopieren Sie diese zuerst und fügen Sie sie in das Terminal ein. Möglicherweise müssen Sie enternach dem Einfügen drücken , um es auszuführen. Sie werden nach Ihrem Kennwort gefragt, da eine Datei zu Ihrem Systemverzeichnis hinzugefügt wird.

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
indiv
quelle
Entschuldigung, mein Fehler, Sie brauchen es auch für den Namen der conf-Datei. Trotzdem sollte auch $ (basename ~) funktionieren
nohillside
1
Ich habe etwas anderes 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 in /etc/apache2/extra/httpd-userdir.conf mit einem "*" anstelle von "$ USER_DIR" hinzugefügt. Dies aktiviert Benutzerverzeichnisse für alle Benutzer, die ein Verzeichnis "Sites" haben.
Jason
1

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)

Matthieu Riegler
quelle
1

Hier ist eine einzeilige Terminal - Befehl, der macOS des integrierten Apache - Server aktivieren, und ermöglicht es Ihnen , die Seiten - Verzeichnis in Ihrem Benutzerordner zu verwenden. Es ist mit der neuesten Version von macOS (Mojave) kompatibel und wurde auch für die Zusammenarbeit mit Sierra und High Sierra getestet. Ich vermute, dass es auch mit anderen Versionen funktionieren wird - ich habe mein Bestes gegeben, 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, es ist technisch gesehen eine Zeile, auch wenn sie wirklich sehr, sehr lang ist ...

Wowfunhappy
quelle
0

Unter /apple//a/57555/9058 müssen Sie die Webfreigabe pro Benutzer manuell aktivieren (mit Terminal.app).

nohillside
quelle
0

Mountain Lion entfernt die Konfigurationsdatei, die den Webzugriff auf Ihr Benutzerverzeichnis ermöglicht. Die Konfigurationsdateien befinden sich in /etc/apache2/users/. Das fehlende ist user.conf, wo Benutzer Ihr kurzer Benutzername ist.

Wenn Sie nicht mit der Befehlszeile herumspielen möchten, finden Sie hier ein Applescript, mit dem Sie eine Konfigurationsdatei für Ihren Benutzer erstellen können. Sie werden nach Ihrem Kennwort gefragt, da die Datei in einem Verzeichnis auf Systemebene erstellt werden muss und erhöhte Berechtigungen erforderlich sind.

Ö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

Nach Abschluss des Skripts sollten Sie auf Ihre Webseite auf Benutzerebene zugreifen können.

indiv
quelle