Chcę skonfigurować lokalny serwer WWW na moim Ubuntu (14.04). Więc zainstalowałem całe oprogramowanie, aby uzyskać serwer LAMP.
Problem polega na tym, że robię coś złego, tworząc wirtualne hosty. Chciałem utworzyć różne subdomeny na moim komputerze lokalnym. Na przykład site1.localhost i site2.localhost.
W moim /var/www/
katalogu utworzyłem dowiązanie symboliczne „site1” do /home/user/Workspaces/site1
.
W moim pliku error.log Apache otrzymałem następujący błąd.
[core:error] [pid 12679] [client 127.0.0.1:59006] AH00037: Symbolic link not allowed or link target not accessible: /var/www/site1
W mojej konfiguracji Apache mam:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Myślę więc, że coś jest nie tak z uprawnieniami do folderów. Szukałem w Google i znalazłem kilka osób z tym samym problemem, ale wszystkie podane tam odpowiedzi nie zadziałały. Dodałem własną nazwę użytkownika do grupy danych www i tym podobne.
Więc ls -la /var/www
zwraca:
total 12
drwxrwsr-x 3 user www-data 4096 okt 13 19:08 .
drwxr-xr-x 14 root root 4096 okt 1 22:50 ..
drwxr-xr-x 2 root www-data 4096 okt 1 22:50 html
lrwxrwxrwx 1 root www-data 29 okt 13 19:08 site1 -> /home/user/Workspaces/site1/
i ls -la /home/juul/Workspaces/site1
zwraca:
total 24
drwxrwxr-x 4 user www-data 4096 okt 13 18:21 .
drwxrwx--- 3 user user 4096 okt 13 17:31 ..
-rw-rw-r-- 1 user user 0 okt 13 18:21 index.html
drwxrwxr-x 4 user www-data 4096 okt 13 16:12 .metadata
drwxrwxr-x 5 user www-data 4096 okt 13 16:53 Project
Mam nadzieję, że ktoś może mi w tym pomóc :-)
źródło
Mam standardową instalację apache w dniu 14.04. Brak plików lub katalogów określających „dane www”. Czy sam to zmieniłeś? Istnieje wiele nieaktualnych lub po prostu niepoprawnych informacji na temat konfigurowania serwerów internetowych, więc uważaj, kogo obserwujesz i cofaj to, co nie działa.
To powiedziawszy, „witryna1” powinna znajdować się w
html
katalogu i być własnością użytkownika. To naprawdę nie musi być dowiązaniem symbolicznym; możesz określić inny katalog w pliku konfiguracyjnym. Coś takiego:źródło
Rozwiązanie dla: link symboliczny niedozwolone lub docelowy związek nie jest dostępna:
/var/www/html/mySymbolicLink
.Jest to wyraźnie problem z uprawnieniami. Problem polega na tym, że html w twoim katalogu domowym jest własnością użytkownika, a serwer apache jest uruchamiany przez innego użytkownika, więc nie może uzyskać dostępu do twojego katalogu domowego.
Rozwiązaniem byłoby dodanie użytkownika uruchamiającego apache do grupy, zwykle taki sam jak nazwa użytkownika. Tak więc w moim pudełku CentOS zrobiłem to jako:
To dodaje apache użytkownika do dewelopera grupy. Teraz muszę dać uprawnienia do wykonywania.
W
/home
:Pozwoli to na wykonanie uprawnienia do mojego folderu tylko dla członków grupy. I to wszystko. Będziesz musiał zmodyfikować użytkownika Apache dla tego, co działa na twoim serwerze WWW, uważam, że dla Ubuntu jest nim użytkownik
www-data
.źródło