Wiem, że to pytanie jest często zadawane, ale rozwiązania, które widziałem, nie działały dla mnie.
Mam włączony tylko jeden wirtualny host i próbuję umożliwić dostęp do folderu, który nie znajduje się w katalogu głównym dokumentu
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
Alias /movies /home/username/Videos/Movies
<Directory /home/username/Videos/Movies/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Ustawiam /etc/apache2/envvars
w następujący sposób
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=public
Upewniłem się, że / home / nazwa użytkownika / Wideo / i jego podfoldery są własnością username:public
, ustawiłem uprawnienia na 777 (po 775 nie działało) i upewniłem się, że użytkownik www-data
należy do grupy public
.
Teraz, kiedy przeglądam http://localhost/movies
, dostaję
[Mon Apr 21 11:28:14.971844 2014] [core:error] [pid 1385:tid 140067725104896] (13)Permission denied: [client 127.0.0.1:46603] AH00035: access to /movies/ denied (filesystem path '/home/username/Videos') because search permissions are missing on a component of the path
Ale kiedy ustawiam /etc/apache2/envvars
uruchamianie Apache pod username
(moją własną nazwą użytkownika) wszystko działa dobrze. Problem dotyczy uprawnień, ale nie widzę tego w moim przypadku; szczególnie gdy ustawię uprawnienia na 777
. Jakieś pomysły?
Wersja PS Ubuntu to 14.04, Apache to 2.4.7 i nie edytowałem innych plików konfiguracyjnych.
/home
z włączoną ACL? (na końcu bitów uprawnień jest znak „+”, jeśli tak jest (sprawdź z ls -l
))