วิธีแก้ไข mod_authz_host Apache Errors ใน 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 เป็นครั้งคราวซึ่งไม่เกี่ยวข้องกับการสนทนานี้ ข้อผิดพลาดของคุณไม่ได้มาจากการขาดแพคเกจที่เฉพาะเจาะจงและไม่ได้มาจากการพึ่งพาที่ไม่ได้รับการเติมเต็มใด ๆ วิธีที่นักพัฒนาเลือกใช้วลีข้อผิดพลาดเหล่านี้นำไปสู่ความเข้าใจผิดที่พบบ่อยเหล่านี้



การแก้ไขคำสั่งโมดูล restrict.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 อ้างอิงถึง คุณสามารถลบสิ่งเหล่านี้ได้อย่างปลอดภัยเมื่อคุณเพิ่มข้อความใหม่ใน

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

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

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

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

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

อ่าน 3 นาที