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