Jak sprawić, by mój katalog użytkowników znów działał w celu udostępniania stron internetowych?

26

Mam włączone udostępnianie stron internetowych w Lionie i na stronie internetowej http://localhost/~user, gdzie userznajduje się mój katalog użytkowników. Po przejściu na Mountain Lion udostępnianie w sieci (Apache) pozostało włączone i mogę przejść do localhost i uzyskać „To działa!” domyślna strona internetowa, ale nie mogę już uzyskać dostępu do mojej strony użytkownika. Błąd jest

Zakazany

Nie masz uprawnień dostępu do / ~ user / na tym serwerze.

Jak ponownie włączyć stronę internetową mojego katalogu użytkowników?

osob
źródło

Odpowiedzi:

18

Oto, w jaki sposób można ponownie włączyć stronę internetową za pomocą wiersza polecenia za pomocą terminalu.

Najpierw skopiuj to i wklej do Terminala. Być może będziesz musiał nacisnąć enterpo wklejeniu, aby go uruchomić. Poprosi o podanie hasła, ponieważ dodaje plik do katalogu systemowego.

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

Następnie uruchom to polecenie, aby zrestartować serwer WWW:

sudo apachectl restart
osob
źródło
Przepraszam, mój błąd, potrzebujesz go również do nazwy pliku conf. Niemniej jednak $ (basename ~) powinno również działać
nohillside
1
Zrobiłem coś nieco innego niż to. Dziękuję osobiście za informacje, które pomogły mi stworzyć niestandardowe rozwiązanie dla mojej konfiguracji. Dodałem blok „Katalog”, który musisz /etc/apache2/extra/httpd-userdir.conf z „*” zamiast „$ USER_DIR”. Umożliwia to katalogi użytkowników wszystkim użytkownikom, którzy mają katalog „Witryny”.
Jason
1

Musiałem dodać FollowSymLinksw następujący sposób /etc/apache2/users/username.conf:

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

( usernamemusi zostać zastąpiony twoją prawdziwą nazwą użytkownika)

Matthieu Riegler
źródło
1

Oto jedno-wierszowe polecenie terminalu , które włączy wbudowany serwer apache macOS i pozwoli na korzystanie z katalogu Witryny w folderze użytkownika. Jest kompatybilny z najnowszą wersją systemu macOS w tym piśmie (Mojave), a także został przetestowany pod kątem współpracy z Sierra i High Sierra. Podejrzewam, że będzie działał również z innymi wersjami - dołożyłem wszelkich starań, aby napisać go w sposób przyszłościowy.

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"

† Cóż, technicznie jest to jedna linia, nawet jeśli jest naprawdę bardzo długa ...

Wowfunhappy
źródło
0

Zobacz /apple//a/57555/9058 , w zasadzie musisz ręcznie włączyć udostępnianie dla poszczególnych użytkowników ręcznie (za pomocą Terminal.app).

nohillside
źródło
0

Mountain Lion usuwa plik konfiguracyjny, który zapewnia dostęp sieciowy do katalogu użytkownika. Pliki konfiguracyjne są w /etc/apache2/users/. Brakuje user.conf, gdzie użytkownik jest twoją krótką nazwą użytkownika.

Jeśli nie chcesz majstrować przy wierszu poleceń, oto Applescript, który możesz uruchomić, aby utworzyć plik konfiguracyjny dla swojego użytkownika. Poprosi Cię o podanie hasła, ponieważ musi utworzyć plik w katalogu na poziomie systemu i potrzebuje podwyższonych uprawnień.

W folderze aplikacji lub Launchpad otwórz Other > Applescript Editor. Skopiuj poniższy skrypt i wklej go w polu tekstowym edytora Applescript. Następnie kliknij przycisk Uruchom .

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

Po zakończeniu skryptu dostęp do strony internetowej na poziomie użytkownika powinien być możliwy.

osob
źródło