วิธีแก้ไข & lsquo; ต้องห้าม - คุณไม่ได้รับอนุญาตให้เข้าถึง / บนเซิร์ฟเวอร์นี้ & rsquo; บนโดเมนหลังจากตั้งค่า Apache?

Apache เป็นซอฟต์แวร์เว็บเซิร์ฟเวอร์ที่ใช้เกือบ 67% ของเว็บเซิร์ฟเวอร์ทั้งหมดในโลก ซอฟต์แวร์นี้พัฒนาและจัดจำหน่ายโดย Apache Software Distribution เป็นโอเพ่นซอร์สและสามารถใช้ได้ฟรี Apache นั้นรวดเร็วปลอดภัยและเชื่อถือได้ซึ่งเป็นสาเหตุหนึ่งของความนิยม อย่างไรก็ตามเมื่อไม่นานมานี้มีผู้ใช้จำนวนมากประสบกับข้อผิดพลาด“ Forbidden - คุณไม่มีสิทธิ์เข้าถึง / บนเซิร์ฟเวอร์นี้ ” ขณะพยายามตั้งค่า Apache สำหรับโดเมนของตน

อะไรเป็นสาเหตุของข้อผิดพลาด“ Forbidden - คุณไม่มีสิทธิ์เข้าถึง / บนเซิร์ฟเวอร์นี้”

หลังจากได้รับรายงานจำนวนมากจากผู้ใช้หลายคนเราจึงตัดสินใจที่จะตรวจสอบปัญหาและคิดหาวิธีแก้ไขปัญหาอย่างสมบูรณ์ นอกจากนี้เราได้ตรวจสอบสาเหตุที่ทำให้เกิดและระบุไว้ดังต่อไปนี้

  • การตั้งค่าไดเรกทอรีร่วมไม่ถูกต้อง : เป็นไปได้ว่าการตั้งค่าสำหรับไดเรกทอรีส่วนกลางไม่ได้รับการกำหนดค่าอย่างถูกต้องซึ่งไม่อนุญาตให้มีคำสั่งกับไซต์มากพอ หากไซต์ไม่มีคำสั่งที่ถูกต้องอาจทำให้เกิดข้อผิดพลาดนี้
  • สิทธิ์ไม่ถูกต้อง : Apache ต้องการการอนุญาตถึงโฟลเดอร์รากของไดเร็กทอรีเพื่อให้ทำงานได้อย่างถูกต้องหากไม่ได้รับสิทธิ์เหล่านี้ข้อผิดพลาดอาจถูกทริกเกอร์
  • ไม่มีชื่อผู้ใช้ : ใน“ httpd.conf” ต้องป้อนชื่อผู้ใช้จริงของผู้ใช้ในบางกรณีเพื่อกำจัดข้อผิดพลาด วิธีนี้ใช้ได้กับบางคนในขณะที่บางคนไม่ได้ผล

เมื่อคุณมีความเข้าใจพื้นฐานเกี่ยวกับลักษณะของปัญหาแล้วเราจะดำเนินการแก้ไขต่อไป ตรวจสอบให้แน่ใจว่าได้ใช้สิ่งเหล่านี้ตามลำดับเฉพาะที่นำเสนอ

โซลูชันที่ 1: การเปลี่ยนการตั้งค่าไดเรกทอรีร่วม

จำเป็นต้องกำหนดค่าการตั้งค่าบางอย่างอย่างเหมาะสมเพื่อแก้ไขปัญหานี้ ดังนั้นในขั้นตอนนี้เราจะเพิ่มคำสั่งตัวเลือกใน Global Directory Settings ซึ่งอยู่ใน“ httpd . conf ” หรือ“ httpd - vhosts conf ” ขึ้นอยู่กับผู้ใช้ สำหรับการที่:

  1. เมื่อคุณอยู่ใน“ httpd . conf ” หรือ“ httpd-vhosts.conf” ให้มองหาการตั้งค่าไดเร็กทอรีซึ่งควรจะคล้ายกับโค้ดที่กล่าวถึงด้านล่าง
     ตัวเลือก FollowSymLinks AllowOverride All Order ปฏิเสธอนุญาตอนุญาตจากทั้งหมด 

    หมายเหตุ:เป็นไปได้ว่าโค้ดมี“ ปฏิเสธจากทั้งหมด ” แทนที่“ อนุญาตจากทั้งหมด ” สิ่งสำคัญคือคุณต้องแก้ไขเป็น " อนุญาตจากทั้งหมด " หรือ " ต้องได้รับทั้งหมด " ตามที่ระบุด้านล่าง

  2. ให้แน่ใจว่าคุณเพิ่มว่า“ ตัวเลือกดัชนี FollowSymlinks รวม ExecCGI ” สายไปในลักษณะที่ว่ามันมีลักษณะคล้ายกับรหัสต่อไปนี้
     #Options FollowSymLinks ดัชนีตัวเลือก FollowSymLinks รวม ExecCGI AllowOverride All Order ปฏิเสธอนุญาตให้อนุญาตจากทั้งหมด 
  3. ตรวจสอบเพื่อดูว่าปัญหายังคงมีอยู่หรือไม่
  4. หากปัญหายังไม่ได้รับการแก้ไขให้แก้ไขโค้ดโดยลบ“ Allow from All ” เป็น“ Require All Granted
  5. ตรวจสอบเพื่อดูว่าปัญหายังคงมีอยู่หรือไม่

โซลูชันที่ 2: การเปลี่ยนสิทธิ์

เมื่อผู้ใช้เชื่อมโยง Apache กับโดเมนพวกเขาจะให้สิทธิ์แก่ซอฟต์แวร์เพื่อให้สามารถอ่านและเขียนไฟล์ได้ สิ่งสำคัญคือต้องให้สิทธิ์เหล่านี้อย่างเหมาะสม ด้านล่างนี้เราจะระบุวิธีการให้สิทธิ์ที่เหมาะสม

  1. ตามปกติผู้ใช้จะให้สิทธิ์ในลักษณะต่อไปนี้
    chgrp -R www-data / ชื่อผู้ใช้ / home / Dropbox / myamazingsite / chmod -R 2750 / ชื่อผู้ใช้ / home / Dropbox / myamazingsite /
  2. คำสั่งเหล่านี้ไม่ถูกต้องและจำเป็นต้องแทนที่ด้วย
    chgrp -R www-data / ชื่อผู้ใช้ chmod -R 2750 / ชื่อผู้ใช้
  3. นอกจากนี้โปรดทราบว่าคุณกำลังใช้ " chmod " ในระดับที่ถูกต้องให้ใช้ระดับที่ให้สิทธิ์ในการอ่านแก่ผู้ใช้เช่น " chmod 755 "
  4. ตรวจสอบดูว่าปัญหายังคงมีอยู่หรือไม่หลังจากลองทำตามคำแนะนำ

โซลูชันที่ 3: การเพิ่มชื่อผู้ใช้

ใน“ httpd . conf “ อย่าลืมเพิ่มชื่อผู้ใช้ที่ถูกต้องของคุณแทนคำว่า“ ผู้ใช้”หรือ“ กลุ่ม”ในบางกรณีการเพิ่มชื่อผู้ใช้จะช่วยแก้ปัญหาได้