เคล็ดลับการแก้ไขปัญหา Apache

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา

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

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

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

เซิร์ฟเวอร์ของคุณทำงานจริงหรือไม่

เชื่อหรือไม่ว่าสิ่งนี้เกิดขึ้นกับผู้ดูแลระบบมากมาย คุณทำให้เซิร์ฟเวอร์หยุดทำงานทำการบำรุงรักษาและเมื่อคุณไปตรวจสอบเซิร์ฟเวอร์คุณจะได้รับข้อผิดพลาด สิ่งแรกที่คุณทำโดยธรรมชาติคือตรวจสอบสิ่งนั้น /etc/apache2/apache.conf ไฟล์เพื่อให้แน่ใจว่าไวยากรณ์ของคุณถูกต้อง แต่มันสมบูรณ์แบบ! ว่าไง? สิ่งแรกที่คุณอาจต้องการตรวจสอบคือตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์กำลังทำงานอยู่ แต่คุณไม่ต้องการเพียงแค่ออกคำสั่งเพื่อเริ่มเซิร์ฟเวอร์หรือโหลดเซิร์ฟเวอร์ซ้ำ ให้ออกคำสั่งแทน:

sudo /etc/init.d/apache2 สถานะ

ซึ่งควรส่งคืนสิ่งที่ต้องการ:

* apache กำลังทำงาน (pid 9751)

ถ้าไม่เริ่มเซิร์ฟเวอร์ด้วย:

sudo /etc/init.d/apache2 เริ่มต้น

หรือ

sudo apache2ctl เริ่มต้น

หมายเหตุ: หากคุณใช้การแจกจ่ายเช่น Fedora, SuSE หรือ Mandriva คุณจะต้องทำก่อน ของมัน ให้กับผู้ใช้รูทและออกคำสั่งข้างต้นโดยไม่ต้องใช้ sudo .

มันไม่ทำงานและมันจะไม่เริ่ม

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

sudo apache2ctl configtext

คำสั่งดังกล่าวควรรายงาน:

ไวยากรณ์ตกลง

หากคุณไม่ตกลงคุณจะได้รับข้อมูลที่ชี้ไปที่ข้อผิดพลาดในไฟล์กำหนดค่าของคุณ

Apache ต้องการดาวน์โหลดไฟล์. php!

นี่เป็นอีกหนึ่งปัญหาที่พบบ่อย เมื่อคุณเพิ่มเครื่องมือใหม่บนเว็บเซิร์ฟเวอร์ของคุณ (เช่น Drupal) หากไฟล์การกำหนดค่าของคุณได้รับการตั้งค่าอย่างเหมาะสมไฟล์. php ใด ๆ อาจไม่ปรากฏ แต่การพยายามดูไฟล์. php จะทำให้เบราว์เซอร์ของคุณพยายามดาวน์โหลดไฟล์แทน ทำไมถึงเป็นแบบนี้? ต้องแจ้งให้ Apache ทราบว่าจะต้องแสดงส่วนขยายบางอย่างไม่ได้ดาวน์โหลด ทำได้จากภายในไฟล์คอนฟิกูเรชัน Apache เปิดไฟล์นั้น (ในเซิร์ฟเวอร์ Ubuntu จะเป็น /etc/apache2/apache2.conf) และค้นหาบรรทัดต่อไปนี้ก่อน:

DirectoryIndex index.html

หากไฟล์นั้นไม่มีไฟล์ index.php ไซต์เกือบทั้งหมดที่ใช้ php จะถูกแสดงผลโดยไร้ประโยชน์

บรรทัดที่สองที่ต้องค้นหาคือ:

แอปพลิเคชัน AddHandler / x-httpd-php .php

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

และเช่นเคยเมื่อคุณเปลี่ยนแปลงไฟล์คอนฟิกูเรชันให้รีสตาร์ท Apache

รู้ว่าจะหาปัญหาได้ที่ไหน

สุดท้ายเป็นเรื่องสำคัญที่คุณจะต้องรู้ว่าควรหันไปทางไหนก่อนเมื่อสิ่งที่กล่าวมาไม่ได้ช่วยคุณ ทุกครั้งที่ฉันมีปัญหากับ Apache ที่ใช้ไม่ได้ของ Occam's Razor อันดับแรกที่ฉันเปิดคือไฟล์บันทึก

หากคุณมองเข้าไป / Var / log / apache2 คุณจะพบไฟล์ต่อไปนี้:

  • access.log: ติดตามการเชื่อมต่อใด ๆ ที่เกิดขึ้นกับเซิร์ฟเวอร์ของคุณ
  • error.log: ติดตามข้อผิดพลาดที่เกิดขึ้นกับ Apache
  • other_vhosts_access.log: นี่คือที่ที่โฮสต์เสมือนจะบันทึกเมื่อโฮสต์เสมือนไม่ได้กำหนดล็อกไฟล์ของตัวเอง

แน่นอนว่าเมื่อไซต์ของคุณพัฒนาขึ้นไฟล์บันทึกของคุณก็จะมี ไม่ว่าคุณจะเจออะไรก็ตาม / Var / log / apache2 นั่นคือจุดที่คุณควรหันหลังก่อนเสมอเมื่อมีปัญหา ก่อนหน้าคุณ Google

ความคิดสุดท้าย

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