Apache เป็นซอฟต์แวร์เว็บเซิร์ฟเวอร์ที่ใช้เกือบ 67% ของเว็บเซิร์ฟเวอร์ทั้งหมดในโลก ซอฟต์แวร์นี้พัฒนาและจัดจำหน่ายโดย Apache Software Distribution เป็นโอเพ่นซอร์สและสามารถใช้ได้ฟรี Apache นั้นรวดเร็วปลอดภัยและเชื่อถือได้ซึ่งเป็นสาเหตุหนึ่งของความนิยม อย่างไรก็ตามเมื่อไม่นานมานี้มีผู้ใช้จำนวนมากประสบกับข้อผิดพลาด“ Forbidden - คุณไม่มีสิทธิ์เข้าถึง / บนเซิร์ฟเวอร์นี้ ” ขณะพยายามตั้งค่า Apache สำหรับโดเมนของตน
อะไรเป็นสาเหตุของข้อผิดพลาด“ Forbidden - คุณไม่มีสิทธิ์เข้าถึง / บนเซิร์ฟเวอร์นี้”
หลังจากได้รับรายงานจำนวนมากจากผู้ใช้หลายคนเราจึงตัดสินใจที่จะตรวจสอบปัญหาและคิดหาวิธีแก้ไขปัญหาอย่างสมบูรณ์ นอกจากนี้เราได้ตรวจสอบสาเหตุที่ทำให้เกิดและระบุไว้ดังต่อไปนี้
- การตั้งค่าไดเรกทอรีร่วมไม่ถูกต้อง : เป็นไปได้ว่าการตั้งค่าสำหรับไดเรกทอรีส่วนกลางไม่ได้รับการกำหนดค่าอย่างถูกต้องซึ่งไม่อนุญาตให้มีคำสั่งกับไซต์มากพอ หากไซต์ไม่มีคำสั่งที่ถูกต้องอาจทำให้เกิดข้อผิดพลาดนี้
- สิทธิ์ไม่ถูกต้อง : Apache ต้องการการอนุญาตถึงโฟลเดอร์รากของไดเร็กทอรีเพื่อให้ทำงานได้อย่างถูกต้องหากไม่ได้รับสิทธิ์เหล่านี้ข้อผิดพลาดอาจถูกทริกเกอร์
- ไม่มีชื่อผู้ใช้ : ใน“ httpd.conf” ต้องป้อนชื่อผู้ใช้จริงของผู้ใช้ในบางกรณีเพื่อกำจัดข้อผิดพลาด วิธีนี้ใช้ได้กับบางคนในขณะที่บางคนไม่ได้ผล
เมื่อคุณมีความเข้าใจพื้นฐานเกี่ยวกับลักษณะของปัญหาแล้วเราจะดำเนินการแก้ไขต่อไป ตรวจสอบให้แน่ใจว่าได้ใช้สิ่งเหล่านี้ตามลำดับเฉพาะที่นำเสนอ
โซลูชันที่ 1: การเปลี่ยนการตั้งค่าไดเรกทอรีร่วม
จำเป็นต้องกำหนดค่าการตั้งค่าบางอย่างอย่างเหมาะสมเพื่อแก้ไขปัญหานี้ ดังนั้นในขั้นตอนนี้เราจะเพิ่มคำสั่งตัวเลือกใน Global Directory Settings ซึ่งอยู่ใน“ httpd . conf ” หรือ“ httpd - vhosts conf ” ขึ้นอยู่กับผู้ใช้ สำหรับการที่:
- เมื่อคุณอยู่ใน“ httpd . conf ” หรือ“ httpd-vhosts.conf” ให้มองหาการตั้งค่าไดเร็กทอรีซึ่งควรจะคล้ายกับโค้ดที่กล่าวถึงด้านล่าง
ตัวเลือก FollowSymLinks AllowOverride All Order ปฏิเสธอนุญาตอนุญาตจากทั้งหมด
หมายเหตุ:เป็นไปได้ว่าโค้ดมี“ ปฏิเสธจากทั้งหมด ” แทนที่“ อนุญาตจากทั้งหมด ” สิ่งสำคัญคือคุณต้องแก้ไขเป็น " อนุญาตจากทั้งหมด " หรือ " ต้องได้รับทั้งหมด " ตามที่ระบุด้านล่าง
- ให้แน่ใจว่าคุณเพิ่มว่า“ ตัวเลือกดัชนี FollowSymlinks รวม ExecCGI ” สายไปในลักษณะที่ว่ามันมีลักษณะคล้ายกับรหัสต่อไปนี้
#Options FollowSymLinks ดัชนีตัวเลือก FollowSymLinks รวม ExecCGI AllowOverride All Order ปฏิเสธอนุญาตให้อนุญาตจากทั้งหมด
- ตรวจสอบเพื่อดูว่าปัญหายังคงมีอยู่หรือไม่
- หากปัญหายังไม่ได้รับการแก้ไขให้แก้ไขโค้ดโดยลบ“ Allow from All ” เป็น“ Require All Granted ”
- ตรวจสอบเพื่อดูว่าปัญหายังคงมีอยู่หรือไม่
โซลูชันที่ 2: การเปลี่ยนสิทธิ์
เมื่อผู้ใช้เชื่อมโยง Apache กับโดเมนพวกเขาจะให้สิทธิ์แก่ซอฟต์แวร์เพื่อให้สามารถอ่านและเขียนไฟล์ได้ สิ่งสำคัญคือต้องให้สิทธิ์เหล่านี้อย่างเหมาะสม ด้านล่างนี้เราจะระบุวิธีการให้สิทธิ์ที่เหมาะสม
- ตามปกติผู้ใช้จะให้สิทธิ์ในลักษณะต่อไปนี้
chgrp -R www-data / ชื่อผู้ใช้ / home / Dropbox / myamazingsite / chmod -R 2750 / ชื่อผู้ใช้ / home / Dropbox / myamazingsite /
- คำสั่งเหล่านี้ไม่ถูกต้องและจำเป็นต้องแทนที่ด้วย
chgrp -R www-data / ชื่อผู้ใช้ chmod -R 2750 / ชื่อผู้ใช้
- นอกจากนี้โปรดทราบว่าคุณกำลังใช้ " chmod " ในระดับที่ถูกต้องให้ใช้ระดับที่ให้สิทธิ์ในการอ่านแก่ผู้ใช้เช่น " chmod 755 "
- ตรวจสอบดูว่าปัญหายังคงมีอยู่หรือไม่หลังจากลองทำตามคำแนะนำ
โซลูชันที่ 3: การเพิ่มชื่อผู้ใช้
ใน“ httpd . conf “ อย่าลืมเพิ่มชื่อผู้ใช้ที่ถูกต้องของคุณแทนคำว่า“ ผู้ใช้”หรือ“ กลุ่ม”ในบางกรณีการเพิ่มชื่อผู้ใช้จะช่วยแก้ปัญหาได้