Tôi biết câu hỏi này được hỏi rất nhiều, nhưng các giải pháp tôi thấy không hiệu quả với tôi.
Tôi chỉ có một máy chủ ảo được bật và tôi đang cố gắng cho phép truy cập vào một thư mục không nằm dưới gốc tài liệu
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>
Tôi đặt /etc/apache2/envvars
như sau
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=public
Tôi đã đảm bảo rằng / home / tên người dùng / Video / và các thư mục con của nó được sở hữu bởi username:public
, đặt quyền thành 777 (sau 775 không hoạt động) và đảm bảo rằng người dùng www-data
thuộc nhóm public
.
Bây giờ, khi tôi duyệt đến http://localhost/movies
tôi nhận được
[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
Nhưng khi tôi cài đặt /etc/apache2/envvars
chạy Apache dưới username
(tên người dùng của riêng tôi) thì mọi thứ đều hoạt động tốt. Vấn đề là sự cho phép liên quan, nhưng tôi không thấy trong trường hợp của mình; đặc biệt là khi tôi đặt quyền cho 777
. Có ý kiến gì không?
Phiên bản PS Ubuntu là 14.04, Apache là 2.4.7 và tôi không chỉnh sửa các tệp cấu hình khác.
/home
với ACL được kích hoạt? (có dấu "+" ở cuối các bit cho phép nếu đó là trường hợp (kiểm tra với ls -l
))