ฉันรู้ว่าคำถามนี้ถูกถามบ่อยมาก แต่โซลูชันที่ฉันเห็นไม่ได้ผลสำหรับฉัน
ฉันเปิดใช้งานโฮสต์เสมือนเพียงรายการเดียวเท่านั้นและฉันพยายามเปิดใช้งานการเข้าถึงโฟลเดอร์ที่ไม่ได้อยู่ภายใต้รูทเอกสาร
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>
ฉันตั้ง/etc/apache2/envvars
ดังต่อไปนี้
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=public
ฉันทำให้แน่ใจว่า / home / ชื่อผู้ใช้ / วิดีโอ / และโฟลเดอร์ย่อยเป็นเจ้าของโดยusername:public
กำหนดสิทธิ์ในการ 777 (หลัง 775 ไม่ได้ทำงาน) และทำให้แน่ใจว่าผู้ใช้อยู่ในกลุ่มwww-data
public
ตอนนี้เมื่อฉันเรียกดูเพื่อhttp://localhost/movies
รับ
[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
แต่เมื่อฉันตั้ง/etc/apache2/envvars
ให้รัน Apache ภายใต้username
(ชื่อผู้ใช้ของฉันเอง) ทุกอย่างทำงานได้ดี ปัญหาเกี่ยวข้องกับการอนุญาต แต่ฉันไม่เห็นว่าในกรณีของฉันอย่างไร 777
โดยเฉพาะอย่างยิ่งเมื่อผมกำหนดสิทธิ์ในการ ความคิดใด ๆ
รุ่น PS Ubuntu คือ 14.04, Apache คือ 2.4.7 และฉันไม่ได้แก้ไขไฟล์การกำหนดค่าอื่น ๆ
/home
กับ ACL ที่เปิดใช้งาน (มีเครื่องหมาย "+" ที่ส่วนท้ายของบิตสิทธิ์ถ้าเป็นกรณี (ตรวจสอบด้วยls -l
))