Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Linux

แก้ไขข้อผิดพลาด mod_authz_host ใน Apache บน Linux – คำแนะนำทีละขั้นตอน

เมื่อติดตั้งบริการ apache2 บน Red Hat Enterprise Linux, Arch, Scientific Linux, Debian Server, Ubuntu Server หรือการกระจายอื่นๆ ที่รองรับ คุณอาจพบว่าคุณได้รับข้อผิดพลาดเกี่ยวกับโมดูล mod_authz_host ที่ป้องกันการทำงานของบริการ คุณอาจพบว่าข้อผิดพลาดนี้เป็นปัญหาทุกครั้งที่คุณเริ่มบริการ apache2 ใหม่ ข้อผิดพลาดนี้มักจะมาในรูปแบบของคำเตือนไวยากรณ์เกี่ยวกับบรรทัดแรกของไฟล์ แต่ในทางทฤษฎีแล้วคุณอาจได้รับข้อผิดพลาดที่แตกต่างออกไป

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

การแก้ไขคำสั่งโมดูลstrict.conf

เพื่อประโยชน์ในการสนทนา เราจะใช้สารานุกรมการเผยแพร่ Linux ที่ distrowatch.com สำหรับตัวอย่างของเรา เอกสาร apache2 อย่างเป็นทางการใช้ dev.example.com เป็นตัวอย่าง และไม่ว่าในกรณีใด คุณจะไม่ต้องการใช้ที่อยู่เหล่านี้อย่างใดอย่างหนึ่ง

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

เมื่อคุณโหลดไฟล์แล้ว ให้ใส่ใจกับสิ่งที่อ่านได้อย่างละเอียด เช่น:

คำสั่งปฏิเสธ อนุญาต

ปฏิเสธจากทั้งหมด

อนุญาตจาก distrowatch.com

ข้อความนี้ควรมีอยู่ภายใน เท่านั้น บล็อก สังเกตช่องว่างในแท็กแรก หากคุณมีบรรทัดข้อความลอยอยู่นอกบล็อกใดๆ ให้เพิ่มแท็กรอบๆ หรือย้ายเพื่อให้อ่านได้ดังนี้:

<ตำแหน่ง />

    คำสั่งซื้อปฏิเสธ อนุญาต

    ปฏิเสธจากทั้งหมด

    อนุญาตจาก distrowatch.com

โปรดจำไว้ว่าคุณจะต้องแทนที่ distrowatch.com ด้วย URL จริงที่คุณใช้งานอยู่ หากคุณพบบรรทัดใดๆ ที่อ้างอิงถึง dev.example.com โดยตรง แสดงว่าคุณคัดลอกบรรทัดเหล่านั้นโดยตรงจากโค้ดตัวอย่างหรือเพิ่มไว้ตามค่าเริ่มต้น โดเมน example.com มีไว้เพื่อการอธิบายในเอกสารทางเทคนิคเท่านั้น และไม่มีจุดประสงค์ที่แท้จริง เอกสารอย่างเป็นทางการที่httpd.apache.org/docs/2.2/howto/access.html อ้างอิงถึงเอกสารเหล่านั้นจริงๆ คุณอาจสามารถลบสิ่งเหล่านี้ออกได้อย่างปลอดภัยเมื่อคุณเพิ่มข้อความใหม่เข้าไป

หากคุณต้องการรวมไดเร็กทอรีไว้ในไฟล์strict.conf ของคุณ คุณสามารถแทนที่แท็ก ด้วย แท็ก แต่คุณต้องแน่ใจว่าจะรักษาพื้นที่ในแท็กแรกอีกครั้ง ตรวจสอบให้แน่ใจว่าได้บันทึกเอกสารแล้วปิดก่อนเริ่มบริการ apache2 ใหม่ คุณไม่ควรมีปัญหาใดๆ อีกต่อไปจากนี้ไป

นี่คือความหมายของเซิร์ฟเวอร์ apache เมื่อส่งคืนข้อผิดพลาดดังนี้:

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

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

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

เกี่ยวกับผู้เขียน

แก้ไขข้อผิดพลาด mod_authz_host ใน Apache บน Linux – คำแนะนำทีละขั้นตอน

เควิน แอร์โรว์ส

Kevin Arrows เป็นผู้เชี่ยวชาญด้านเทคโนโลยีที่มีประสบการณ์สูงและมีความรู้และมีประสบการณ์ในอุตสาหกรรมมานานกว่าทศวรรษ เขาได้รับการรับรองจาก Microsoft Certified Technology Specialist (MCTS) และมีความมุ่งมั่นอย่างแรงกล้าที่จะติดตามข่าวสารเกี่ยวกับการพัฒนาเทคโนโลยีล่าสุด Kevin ได้เขียนหัวข้อที่เกี่ยวข้องกับเทคโนโลยีอย่างกว้างขวาง โดยนำเสนอความเชี่ยวชาญและความรู้ของเขาในด้านต่างๆ เช่น การพัฒนาซอฟต์แวร์ ความปลอดภัยทางไซเบอร์ และการประมวลผลแบบคลาวด์ การมีส่วนร่วมของเขาในด้านเทคโนโลยีได้รับการยอมรับและเคารพอย่างกว้างขวางจากเพื่อนร่วมงานของเขา และเขาได้รับการยกย่องอย่างสูงจากความสามารถของเขาในการอธิบายแนวคิดทางเทคนิคที่ซับซ้อนในลักษณะที่ชัดเจนและรัดกุม