คำสั่งเพื่อตรวจสอบความถูกต้องของไฟล์กำหนดค่าเซิร์ฟเวอร์ Apache


152

ฉันกำลังมองหาคำสั่งที่ตรวจสอบความถูกต้องของไฟล์กำหนดค่าในเซิร์ฟเวอร์ apache ทั้ง distros Debian และ RHEL ฉันต้องทำก่อนที่จะรีสตาร์ทจึงจะไม่มีการหยุดทำงาน

คำตอบ:


223

ตรวจสอบ: http://httpd.apache.org/docs/2.2/programs/apachectl.html

apachectl configtest

ฉันได้รับข้อความนี้เรียกใช้คำสั่งดังกล่าวAH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Ciasto piekarz

เพิ่มบรรทัด "ServerName whateveryoulike" ในการกำหนดค่า apache ของคุณ แทนที่ whateveryoulike ด้วยสิ่งที่คุณต้องการตั้งชื่อเซิร์ฟเวอร์ของคุณ
หลุม

1
อาจต้องใช้ sudo?
Miguel

36

httpd -tอีกวิธีหนึ่งคือ ดังนั้นจึงมีอยู่ใน Apache รุ่น Windows ตรวจสอบhttp://httpd.apache.org/docs/2.4/programs/httpd.html


ผิดปกติบน Ubuntu เมื่อฉันเรียกใช้apachectl configtestฉันได้รับSyntax OKแต่เมื่อฉันเรียกใช้apache2 -tฉันได้รับAH00526: Syntax error on line 74 of /etc/apache2/apache2.conf(ท่ามกลางข้อผิดพลาดอื่น ๆ )
Buttle Butkus

6

apachectl configtestเป็นคำตอบที่ถูกต้อง น่าเสียดายที่ฉันมีการติดตั้ง windows ซึ่ง apachectl หายไป ที่นี่โทรhttpdยังช่วย


1

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

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

เมื่อเห็นว่าคำถามนี้เป็นที่นิยมอันดับหนึ่งเมื่อ googling "apache config lint" ฉันคิดว่าฉันจะพูดถึงรายละเอียดเล็ก ๆ น้อย ๆ นี้ ...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.