วิธีที่มีประสิทธิภาพในการแก้ไขปัญหา“ หน้าจอแห่งความตายสีขาว” คืออะไร


18

สองสามครั้งที่ฉันอยู่ในตำแหน่งที่ส่วนหน้าของเว็บไซต์ Joomla เป็นหน้าจอว่างเปล่าที่ไม่มีเนื้อหาบางครั้งเรียกว่า "หน้าจอสีขาวแห่งความตาย"

สิ่งนี้เกิดขึ้นหลังจากเว็บไซต์ถูกย้ายแล้วและเกิดขึ้นโดยไม่คาดคิดในเว็บไซต์ที่ทำงานก่อนหน้านี้

สมมติว่าอาจมีสาเหตุที่แตกต่างหลากหลายวิธีที่มีประสิทธิภาพในการแก้ไขปัญหาและแก้ไขปัญหานี้คืออะไร

คำตอบ:


14
  1. เปลี่ยนการรายงานข้อผิดพลาดเป็นสูงสุด

    • ลงชื่อเข้าใช้ในพื้นที่ admin
    • ไปที่การกำหนดค่าทั่วโลก -> เซิร์ฟเวอร์

    ก่อนอื่นคุณต้องตั้งค่าการรายงานข้อผิดพลาดเป็นสูงสุด

  2. แก้ไขไฟล์ใน FTP

    • เข้าสู่ระบบไปยังไฟล์ไซต์ Joomla ของคุณผ่าน FTP

    • ค้นหาไฟล์ index.php ของคุณที่อยู่ในรูทไซต์ของคุณ

    • เปิด index.php และเพิ่มรหัสนี้โดยตรงหลังจากบรรทัดแรกของไฟล์:

      ini_set('display_errors', TRUE); error_reporting(E_ALL); 
      
  3. แก้ไขไฟล์ PHP.ini

    ในไฟล์ PHP.ini คุณต้องเปลี่ยนการตั้งค่าทั้งสองนี้:

    • ตั้งค่าการแสดงข้อผิดพลาดเป็นเปิด: display_errors = On

    • ตั้งค่าการรายงานข้อผิดพลาด: error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT

  4. ตรวจสอบบันทึกเซิร์ฟเวอร์ของคุณ

    ในที่สุดคุณจะได้รับบันทึกข้อผิดพลาดพร้อมข้อความแสดงข้อผิดพลาดที่แสดงเส้นทางข้อผิดพลาด & เหตุผลข้อผิดพลาด

ข้อมูลอ้างอิง: http://www.ostraining.com/blog/joomla/white-screen-of-death/


2
เช่นเดียวกับข้างต้นฉันขอแนะนำให้ติดตั้งและเปิดคอนโซล firebug ในเบราว์เซอร์ของคุณ เมื่อไปที่ White Screen of Death อีกครั้ง คุณจะประหลาดใจกับสิ่งที่คุณพบในบางครั้ง
TryHarder

1
อีกอย่างฉันมักพบว่า White Screen of Death มีส่วนเกี่ยวข้องกับไฟล์. htaccess
TryHarder

1
ในโอกาสที่หายากอาจเป็นเพราะไฟล์ที่กำลังโหลดกำลังใช้defined('FOO') or die();สาย แต่FOOไม่ได้กำหนดไว้
Andrew Eddie

10

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

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

โดยทั่วไปแล้วการอัปเดตส่วนขยายสามารถแก้ไขได้ตราบใดที่ยังมีการปรับปรุง แม้ว่าในบางกรณีอาจเป็นแม่แบบของคุณ


1
ฉันทำเช่นนี้ในทางตรงข้ามและปิดส่วนขยายทั้งหมดแล้วเปิดใช้ทีละรายการจนกว่าไซต์จะแตก แนวคิดเดียวกัน
David Fritsch

1
บางครั้งการปิดเครื่องทั้งหมดในครั้งเดียวอาจทำให้หยุดได้ด้วยตัวเอง ไม่เสมอไป แต่มันเกิดขึ้นเพียงครั้งเดียวดังนั้นในแต่ละครั้งก็เป็นทางออกของเรา
Jordan Ramstad

6

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

เคล็ดลับการแก้จุดบกพร่องพื้นฐานเพิ่มเติมสามารถพบได้ในบล็อกนี้: http://www.readybytes.net/blog/item/a-beginners-guide-to-start-debugging-joomla.html


2

ดูเหมือนว่าไม่มีใครพูดถึงการปิดใช้งานการบัฟเฟอร์เอาต์พุตดังนั้นฉันจะพูดถึงที่นี่ ...

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

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


1

หากคุณเปิด SEF URLs และคุณใช้ไฟล์. htaccess ของ Joomla! ให้ตรวจสอบว่า mod_rewrite เปิดใช้งานบนเซิร์ฟเวอร์

ในหลายกรณีไฟล์. htaccess เป็นผู้ร้ายดังนั้นหากเปิดใช้งาน mod_rewrite ผมขอแนะนำให้สำรองไฟล์. htaccess แล้วลบต้นฉบับ (หรือเปลี่ยนชื่อ) เพื่อดูว่ามันสร้างความแตกต่างหรือไม่

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

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