Apache ใน CentOS 5.6 ให้ฉันสิทธิ์ปฏิเสธข้อผิดพลาด


10

ฉันใช้ apache บน centos 5.6 และเมื่อใดก็ตามที่ฉันพยายามโหลดสคริปต์ php ในไดเรกทอรีใด ๆ นอกจาก / var / www / html (dir รูตเริ่มต้นของ Apache) มันทำให้ฉันมีสิทธิ์ปฏิเสธข้อผิดพลาด

อย่างไรก็ตามเมื่อฉันตรวจสอบการอนุญาตของ dir รูตใหม่ของฉัน (/ var / www-dev) เทียบกับ dir เริ่มต้น (/ var / www / html) พวกเขาจะจับคู่เหมือนกัน ทั้งสองพูดว่า: root: root 755

ฉันได้ลองเปลี่ยนความเป็นเจ้าของเป็น apache: apache และยังได้รับข้อผิดพลาดเดียวกัน

แต่เมื่อฉันเปลี่ยนการตั้งค่า apache กลับเป็นรูทเริ่มต้น (/ var / www / html) ทุกอย่างทำงานได้

ฉันกำลังทำอะไรผิดหรือเปล่า?

นี่คือการตั้งค่าที่ฉันกำลังเปลี่ยนแปลง:

DocumentRoot "/var/www/html"

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

หมายเหตุ: ฉันรีสตาร์ท apache ทุกครั้งที่ฉันเปลี่ยนการตั้งค่าและสิทธิ์ของ apache

เช่นกัน: ฉันยังเปิดใช้งาน REMI และ EPEL


SELinux เปิดใช้งานหรือไม่
Bart De Vos

@TiZon ฉันไม่เชื่อเช่นนั้น มันควรจะเป็นอย่างไร
koeder

คุณช่วยส่งข้อความที่แน่นอนให้เราได้ไหม "สิทธิ์ถูกปฏิเสธ" นี้มาจากระบบไฟล์หรือโดยตรงจาก apache (เช่นโดยคำสั่งสั่งบางอย่าง)? และมีข้อความในไฟล์ error.log หรือไม่
Raffael Luthiger

และตรวจสอบว่าคุณมีไฟล์. htaccess อยู่ในสองไดเรกทอรีย่อยหรือไม่
Raffael Luthiger

1
ขอบคุณ @TiZon! เปิดใช้งาน SELinux แล้ว เมื่อฉันปิดการใช้งานมันจะแก้ไขไฟล์ / etc / selinux / config เว็บแอปของฉันสามารถโหลดในผู้กำกับคนอื่น ๆ ได้
koeder

คำตอบ:


11

โดยปกตินั้นมาจาก Selinux ที่ไม่อนุญาตให้เข้าถึงโฟลเดอร์ ทำ

ls -alZ /var/www/

และหากโฟลเดอร์ html ไม่มีบริบท system_u: object_r: httpd_sys_content_t ให้แก้ไขด้วย chcon

chcon -v -R --type=httpd_sys_content_t /var/www/html

http://wiki.centos.org/HowTos/SELinux


ขอบคุณ @Julien Vehent! ฉันจะให้รางวัลคุณคำตอบเพราะวิธีการของคุณอนุญาตให้ฉันแก้ไขสิทธิ์ SELinux ในโฟลเดอร์เฉพาะแทนที่จะปิดใช้งาน SELinux ทั้งหมดพร้อมกัน ขอบคุณมาก. สิ่งนี้ได้ผล! และช่วยให้ฉันปวดหัว
koeder
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.