Jak skonfigurować apache2 z symbolicznymi linkami w / var / www /?


14

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/wwwzwraca:

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/site1zwraca:

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 :-)

Odpowiedzi:


5

Te uprawnienia uniemożliwiają apachedostęp do ciebie

drwxrwx--- 3 user user     4096 okt 13 17:31 ..

Musisz dać uprawnienia do wykonywania innym:

chmod o+x /home/juul/Workspaces/

(i być może /home/juul/również).


zgodnie z odpowiedzią @muru upewnij się, że wszystkie zawierające katalog mają ustawione uprawnienia „x”. Jeśli nie ma, to nigdy nie zadziała
dawez

3

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 htmlkatalogu 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:

# Add this to the end of the existing 000-default.conf file (after "</VirtualHost>")
<VirtualHost *:80>
    <Directory  /home/user/Workspaces/site1>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    DocumentRoot /home/user/Workspaces/site1
    ServerName site1
</VirtualHost>

1

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:

sudo usermod -a -G dev apache

To dodaje apache użytkownika do dewelopera grupy. Teraz muszę dać uprawnienia do wykonywania.

W /home:

chmod g+x dev -R

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.