Contents

แก้ไขแล้ว: 403 ห้าม “คุณไม่ได้รับอนุญาตให้เข้าถึงบนเซิร์ฟเวอร์นี้”

การกำหนดค่าเว็บเซิร์ฟเวอร์จำนวนมากประสบปัญหาที่เกี่ยวข้องกับสิทธิ์ของไฟล์ มันมักจะทำให้เซิร์ฟเวอร์ไม่สามารถเข้าถึงได้สำหรับผู้เยี่ยมชมและแสดงออกมาในรูปแบบของข้อผิดพลาด “403 Forbidden” โดยปกติแล้ว ข้อความแสดงข้อผิดพลาดจะเป็นเช่น"403 Forbidden: you don’t have suitable to access/on this server"อาจเป็นอะไรก็ได้ในรูปแบบ “ต้องห้าม: คุณไม่ได้รับอนุญาตให้เข้าถึงทรัพยากรนี้”

“ความท้าทายที่คล้ายกันอาจเกิดขึ้นจากความคลาดเคลื่อนภายในไฟล์การกำหนดค่า Apache และ NGINX รวมถึงโอกาสที่ไฟล์.htaccess จะชำรุด เพื่อจัดการกับข้อกังวลเหล่านี้ การทำตามขั้นตอนการแก้ปัญหาที่ตรงไปตรงมาเหล่านี้จึงเป็นประโยชน์

อะไรทำให้เกิดข้อผิดพลาดที่ต้องห้ามของ Apache และ NGINX 403

ความชุกของข้อผิดพลาด 403 ภายในแพลตฟอร์ม Apache และ NGINX อาจเนื่องมาจากปัจจัยที่แตกต่างกันมากมาย อย่างไรก็ตาม โดยทั่วไปจะเป็นผลมาจากข้อมูลรับรองการอนุญาตไม่เพียงพอที่จำเป็นสำหรับการเข้าถึงสาธารณะ นอกจากนี้ การติดตั้ง WordPress มักพบอุปสรรคนี้อันเป็นผลมาจากการกำหนดค่า.htaccess ที่มีข้อบกพร่อง

นอกจากนี้ ด้วยการถือกำเนิดของ Apache เวอร์ชัน 2.4 มีการเปลี่ยนแปลงบางอย่างกับฟังก์ชันคำสั่งซึ่งอาจขัดขวางการเข้าถึงเว็บไซต์ของสาธารณะ และอาจก่อให้เกิดข้อผิดพลาด"403 Forbidden"

วิธีแก้ไขข้อผิดพลาด€ OE403 Forbidden€ ในฐานะผู้ใช้

หากคุณพบข้อผิดพลาด “403 Forbidden” ขณะใช้งานแพลตฟอร์มเว็บ ความพยายามครั้งแรกควรเกี่ยวข้องกับการล้างข้อมูลแคชของเบราว์เซอร์และทิ้งคุกกี้ที่เก็บไว้ นอกจากนี้ หากคุณใช้ Virtual Private Network (VPN) การปิดใช้งานอาจจำเป็น เนื่องจากการกำหนดค่า VPN ผิดพลาดอาจส่งผลให้เกิดปัญหานี้ได้

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

หากต้องการคืนค่าฟังก์ชันการทำงานให้กับเว็บไซต์ของคุณ โปรดทำตามขั้นตอนที่อธิบายไว้ในชุดโซลูชันที่ให้มาตามลำดับ:

แก้ไขสิทธิ์ของไฟล์เพื่อหลีกเลี่ยงข้อผิดพลาด 403

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

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

/th/images/forbidden-you-can-not-access-textbook-php-on-this-server.jpg

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

การแก้ไขการอนุญาตไฟล์ในลักษณะที่ช่วยให้เข้าถึงได้อย่างเหมาะสมในขณะที่รักษาความปลอดภัยสามารถนำมาซึ่งความท้าทายบางประการ โดยเฉพาะอย่างยิ่งเมื่อเป็นเนื้อหาที่เปิดเผยต่อสาธารณะ แนวทางที่รอบคอบจะเกี่ยวข้องกับการเริ่มต้นโดยไม่มีการอนุญาตใดๆ และเพิ่มทีละน้อยตามที่จำเป็น ในเรื่องนี้ โดยทั่วไปแนะนำให้จัดระเบียบไดเร็กทอรีด้วยการตั้งค่าที่อนุญาตที่ 755 และไฟล์แต่ละไฟล์ที่มีการตั้งค่าที่จำกัดมากกว่าที่ 644

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

/th/images/file-permissions-to-solve-you-dont-have-access-error.png

สิทธิ์ที่เกี่ยวข้องที่ได้รับจากค่า 4, 2 และ 1 สอดคล้องกับโหมดการเข้าถึงแบบอ่าน เขียน และดำเนินการ ดังนั้น เมื่อไดเร็กทอรีได้รับสิทธิ์โหมด 755 สิ่งนี้จะมอบสิทธิ์พิเศษแก่เจ้าของในเนื้อหาในนั้น ในขณะที่สมาชิกกลุ่มและบุคคลอื่นถูกจำกัดให้อ่านและดำเนินการเนื้อหาดังกล่าว ในทางกลับกัน โหมดการอนุญาต 644 ที่ใช้กับไฟล์นั้นให้สิทธิ์แก่เจ้าของทั้งสิทธิ์ในการอ่านและเขียน แต่จำกัดสิทธิ์อื่น ๆ ทั้งหมดให้อ่านเนื้อหาของไฟล์เท่านั้น

คุณไม่ได้รับอนุญาตให้เข้าถึงทรัพยากรนี้” จำเป็นต้องตรวจสอบให้แน่ใจว่าไดเร็กทอรี webroot มีสิทธิ์ไฟล์และไดเร็กทอรีที่เหมาะสม วิธีหนึ่งในการทำเช่นนั้นคือการใช้ยูทิลิตี้ chmod ซึ่งช่วยให้สามารถตั้งค่าการอนุญาตที่ต้องการในรูปแบบเฉพาะได้ ตัวอย่างเช่น คำสั่งต่อไปนี้สามารถใช้เพื่อให้สิทธิ์ในการอ่าน เขียน และดำเนินการแก่เจ้าของไดเร็กทอรีในขณะที่ยังคงสิทธิ์ที่จำกัดไว้สำหรับผู้อื่น:bashsudo chown-R:755/var/www/html/your-directory

 sudo find /var/www/html -type d -exec chmod 755 {} \; 

คำสั่งดังกล่าวสันนิษฐานว่าคุณกำลังใช้โฟลเดอร์มาตรฐานสำหรับเว็บเซิร์ฟเวอร์ของคุณ ซึ่งโดยทั่วไปจะแสดงเป็นรูทเอกสารเริ่มต้นโดย Apache ในกรณีที่คุณใช้ไดเร็กทอรีอื่น กรุณาแก้ไขชื่อไดเร็กทอรีตามนั้น หากต้องการแก้ไขการตั้งค่าการอนุญาตในทุกไฟล์เป็น'644’โปรดดำเนินการตามคำแนะนำต่อไปนี้:

 sudo find /var/www/html -type f -exec chmod 644 {} \; 

คำสั่งดังกล่าวใช้ยูทิลิตี้ค้นหาเพื่อระบุไฟล์เอกพจน์ และต่อมาแก้ไขการอนุญาตโดยใช้ chmod วงเล็บปีกกาปิด’{}‘ครอบคลุมเส้นทางไฟล์ที่ได้รับจากคำสั่ง find ในขณะที่เครื่องหมายอัฒภาค’;‘หมายถึงการสิ้นสุดของการประมวลผลซ้ำ

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

 sudo chmod 644 /var/www/html/textbook.php 

หลังจากแก้ไขการอนุญาตไฟล์ที่จำเป็นแล้ว ขอแนะนำให้คุณเริ่มต้นการรีสตาร์ทเว็บเซิร์ฟเวอร์ Apache หรือ NGINX เพื่อให้แน่ใจว่าการแก้ไขการกำหนดค่าใดๆ จะได้รับการดำเนินการอย่างเต็มที่และทำงานได้อย่างเหมาะสมที่สุด

 sudo systemctl restart apache2.service
sudo systemctl restart nginx 

คำแนะนำข้างต้นอำนวยความสะดวกในการรีสตาร์ททั้งเซิร์ฟเวอร์ Apache และ NGINX ในระบบปฏิบัติการ Ubuntu อย่างไรก็ตาม สิ่งสำคัญคือต้องทราบว่าการแจกแจงแบบอิง RPM บางอย่าง รวมถึง Red Hat Enterprise Linux (RHEL) หรือ CentOS อาจมีการติดตั้ง Apache ภายใต้ชื่อ “httpd” ในกรณีเหล่านี้ ผู้ใช้ควรใช้คำสั่งทางเลือกต่อไปนี้เพื่อการทำงานที่ราบรื่น:

 sudo systemctl restart httpd 

แก้ไขไฟล์.htaccess สำหรับเว็บไซต์ WordPress ของคุณ

ไฟล์.htaccess ทำหน้าที่เป็นไฟล์การกำหนดค่าแบบกระจายอำนาจ โดยกำหนดให้เว็บเซิร์ฟเวอร์จัดการการปรับเปลี่ยนตามไดเร็กทอรีเฉพาะ ในบางกรณี ไฟล์นี้อาจเสียหายและทำให้เกิดปัญหาการอนุญาต ส่งผลให้มีข้อความ “คุณไม่มีสิทธิ์ที่จำเป็นในการเข้าถึง/บนเซิร์ฟเวอร์นี้”

โชคดีที่การแก้ไขข้อผิดพลาด 403 บนเซิร์ฟเวอร์ของคุณสามารถทำได้ง่ายๆ โดยการสร้างไฟล์.htaccess ใหม่ หากต้องการสร้างไฟล์.htaccess สำหรับเว็บไซต์ของคุณ หลังจากเข้าสู่ระบบแดชบอร์ด WordPress แล้ว ให้ไปที่การตั้งค่า > ลิงก์ถาวร

/th/images/pemalink-update-in-wordpress-site.png

คุณไม่จำเป็นต้องทำการปรับเปลี่ยนใดๆ เพิ่มเติม เพียงคลิกที่ปุ่ม “บันทึกการเปลี่ยนแปลง” จากนั้น WordPress จะสร้างไฟล์.htaccess ที่อัปเดตให้คุณโดยอัตโนมัติ

/th/images/pemalink-change-in-wordpress-site.png

เมื่อพบข้อความแสดงข้อผิดพลาด “สิทธิ์ถูกปฏิเสธในการเข้าถึงทรัพยากรนี้” หรือ “ไม่สามารถอ่านไฟล์ htaccess ได้ การปฏิเสธการเข้าถึงด้วยเหตุผลด้านความปลอดภัย” บนเซิร์ฟเวอร์ Apache ขอแนะนำให้สร้างไฟล์.htaccess ใหม่เป็นวิธีแก้ปัญหาที่เป็นไปได้ โดยเฉพาะสำหรับไซต์ WordPress

กำหนดค่าคำสั่งในไฟล์การกำหนดค่า Apache

Apache 2.4 ใช้โมดูลการกำหนดค่าใหม่ที่เรียกว่า “mod\_authz\_host” ซึ่งนำเสนอคำสั่งที่เป็นนวัตกรรมมากมายสำหรับการนำไปปฏิบัติ โดยพื้นฐานแล้ว คำสั่งเหล่านี้จะบังคับใช้แนวทางดังต่อไปนี้:

⭐ต้องได้รับสิทธิ์ทั้งหมด:อนุญาตคำขอทั้งหมด

⭐ ต้องการทั้งหมดที่ถูกปฏิเสธ: ปฏิเสธคำขอทั้งหมด

นโยบายความปลอดภัยสำหรับโฮสต์ “safe.com” กำหนดว่าคำขอที่เข้ามาทั้งหมดจะต้องมาจากโดเมนนี้จึงจะได้รับอนุญาตให้เข้าถึงได้ สิ่งนี้ทำให้มั่นใจในความปลอดภัยและความสมบูรณ์ของเว็บเซิร์ฟเวอร์โดยการจำกัดการเข้าถึงที่ไม่ได้รับอนุญาตและกิจกรรมที่อาจเป็นอันตราย

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

 vim /etc/apache2/apache2.conf 

รหัส:

 <Directory />
   Options FollowSymLinks
   AllowOverride None
   Require all denied
</Directory>
<Directory /usr/share>
   AllowOverride None
   Require all granted
</Directory>
<Directory /var/www/>
   Options Indexes FollowSymLinks
   AllowOverride None
   Require all granted
</Directory> 

แท้จริงแล้ว สำหรับเว็บเซิร์ฟเวอร์ที่ใช้ Red Hat Enterprise Linux (RHEL) จำเป็นอย่างยิ่งที่จะต้องแน่ใจว่าสามารถเข้าถึงไดเร็กทอรี /var/www ภายในไฟล์คอนฟิกูเรชัน Apache ได้ไม่จำกัด ดังนั้นจึงจำเป็นอย่างยิ่งที่ไฟล์ httpd.conf ซึ่งสามารถพบได้ในเส้นทางที่ระบุ จะต้องรวมข้อมูลโค้ดที่ตามมาด้วย:

 vim /etc/httpd/conf/httpd.conf 

รหัส:

 <Directory "/var/www">
         AllowOverride None
         Require all granted
</Directory> 

โดยสรุป หากต้องการรีสตาร์ทเซิร์ฟเวอร์ Apache คุณสามารถใช้วิธีใดวิธีหนึ่งที่กล่าวมาข้างต้นโดยดำเนินการคำสั่งใดคำสั่งหนึ่งที่ให้ไว้

 # for Ubuntu and Debian

sudo systemctl restart apache2.service

# for RHEL and CentOS

sudo systemctl restart httpd 

แก้ไขข้อผิดพลาดการอนุญาตเซิร์ฟเวอร์ 403 Forbidden บน Linux

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

ปัญหาเพิ่มเติมมากมายอาจนำไปสู่ข้อผิดพลาดฝั่งเซิร์ฟเวอร์ที่เทียบเคียงได้ ซึ่งจำเป็นต้องใช้ความสามารถพิเศษในการแก้ไขข้อขัดข้องของเซิร์ฟเวอร์ Linux เพื่อกู้คืนฟังก์ชันการทำงาน