“ เว็บไซต์พบข้อผิดพลาดที่ไม่คาดคิด โปรดลองอีกครั้งในภายหลัง."


27

ฉันมีข้อผิดพลาดนี้กับ Drupal 7

  1. ฉันจะมีข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดนี้ได้อย่างไร รายงานใด ๆ บันทึกใด ๆ ? ไม่มีข้อผิดพลาดใน php

  2. ฉันจะปิดการใช้งานข้อความนั้นและมีข้อความที่มีประโยชน์มากขึ้นสำหรับการแก้ไขข้อบกพร่องได้อย่างไร

หมายเหตุ : คำถามของฉันไม่ใช่ "ฉันจะแก้ไขปัญหานี้ได้อย่างไร"

คำตอบ:


27

ข้อผิดพลาดนี้มาจากข้อยกเว้น PHP ที่ตรวจไม่พบ Drupal จับข้อยกเว้นดังนั้นจึงไม่มีข้อความแสดงข้อผิดพลาด PHP ที่น่าเกลียดปรากฏต่อผู้ใช้ คุณสามารถค้นหาข้อมูลข้อยกเว้นได้ในลิงก์ 'ข้อความบันทึกล่าสุด' ในรายงาน (หรือลองพา ธ นี้: / admin / reports / dblog) ตรวจสอบให้แน่ใจว่าเปิดใช้งานโมดูล 'การบันทึกฐานข้อมูล' แล้วเนื่องจากโมดูลนี้มีรายงานนี้

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


โอเคขอบคุณดังนั้นจึงไม่มีวิธีการใหม่ในการเปลี่ยนพฤติกรรมนี้เป็นวิธีที่สอดคล้องกับการแก้ปัญหามากกว่าหรือไม่ (เช่น ... แสดงข้อยกเว้นบนหน้าจอ)
theredled

ไม่ AFAIK ไม่มีวิธีง่ายๆในการทำเช่นนั้น คุณอาจลองตั้งค่าตัวจัดการข้อยกเว้นของคุณเอง (ใช้ฟังก์ชัน PHP มาตรฐาน set_exception_handler) แต่ระวังผลข้างเคียง
sanzante

7
/admin/reports/dblogความคิดที่ดีในการตรวจสอบ นอกจากว่าคุณจะไม่สามารถเข้าสู่ระบบได้เพราะข้อผิดพลาดโง่ ๆ นี้ได้ทำให้เว็บไซต์ drupal ของคุณหมด!
g33kz0r

ตัวฉันเองเห็นข้อผิดพลาดนี้พร้อมวิวทิวทัศน์ "FieldException: ความพยายามในการสร้างฟิลด์ที่ไม่รู้จัก ... " วิธีแก้ปัญหาสำหรับฉันที่เปิดใช้งานการดูการทำงานแบบ drush en - ฉันทำงานกับคนอื่นและดึงการปรับปรุงคอมไพล์ของพวกเขา จำเป็นต้องเปิดใช้งานโมดูล (เนื่องจากเปิดใช้งานอยู่ในฐานข้อมูลซึ่งฉันไม่ได้รับคำขอดึงเราใช้คุณลักษณะ) หวังว่านี่จะช่วยคนอื่น ๆ
therobyouknow

4
@ g33kz0r: คุณสามารถใช้ drush watchdog-show เพื่อดูข้อความแสดงข้อผิดพลาดหรือหากเว็บไซต์ของคุณเสียอย่างสมบูรณ์ให้ตรวจสอบตาราง watchdog ในฐานข้อมูลที่จัดเก็บข้อความเหล่านั้น
sanzante

15

Drupal 6 & 7

ถ้าใช้ Drush drush vset error_level 1เพียงแค่ทำ

มิฉะนั้นไปที่ " /admin/config/development/logging" และเปลี่ยนการตั้งค่าเป็น "ข้อผิดพลาดและคำเตือน"

Drupal 8

แทนที่จะเป็นdrush vset/ vget/ vdelคุณสามารถใช้cset/ cget/ cdelสำหรับค่าการตั้งค่าและsset/ sget/ sdelสำหรับค่าสถานะ


12

ทางที่ง่าย

แก้ไข settings.php ของคุณและเพิ่มบรรทัดที่นั่น (โดยเฉพาะบนไซต์ dev ของคุณคุณสามารถดำเนินการต่อไปได้)

$conf['error_level'] = 1;

drush ต้องการให้คุณสามารถบูตฐานข้อมูลได้


คำตอบที่ดีที่สุด มันช่วยประหยัดเวลาของฉัน
ออสติน

6

วิธีที่ง่ายสำหรับ Drupal 8 ,

หากคุณไม่สามารถลงชื่อเข้าใช้อีกต่อไปเพื่อเข้าถึงข้อความบันทึกล่าสุดดังอธิบายในคำตอบที่ยอมรับ

เปิดไฟล์/sites/default/settings.phpด้วยโปรแกรมแก้ไขหรือไคลเอนต์ ftp และเพิ่มบรรทัดนี้:

$config['system.logging']['error_level'] = 'verbose';

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


2

_drupal_log_error()ข้อผิดพลาดที่มาจาก

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


0

ตรวจสอบ dblog เป็นสถานที่ที่ดีที่สุดในการค้นหาข้อผิดพลาดในเว็บไซต์ Drupal ตรวจสอบคอนโซล JS เพื่อเลือกข้อผิดพลาดเพิ่มเติมในเบราว์เซอร์ของคุณ


ขอบคุณสำหรับ dblog (/ admin / reports / dblog) ตอนนี้ฉันจะปิดการใช้งานข้อความนั้นและมีประโยชน์มากขึ้นสำหรับวัตถุประสงค์ในการแก้ไขปัญหาได้อย่างไร
theredled

1
อย่างไรก็ตามฉันไม่คิดว่าข้อผิดพลาด JS อาจทำให้เกิดข้อผิดพลาดของเซิร์ฟเวอร์นั้น ...
31712 Theredled

0

ตรวจสอบในwatchdogตารางใน MySQL คุณสามารถดาวน์โหลด Blob ( variablesคอลัมน์) และเปิดด้วย Notepad มันจะแสดงวัตถุที่ต่อเนื่องพร้อมกับข้อผิดพลาดของคุณ


0

ลองสิ่งนี้:

ระดับข้อผิดพลาด

admin menu equivalent: admin/config/development/logging
drush command: drush vset -y error_level <value>
values:
    0: none
    1: errors and warnings
    2: all 

0

หากต้องการทำให้ข้อผิดพลาดปรากฏบนเว็บไซต์ Drupal ให้ค้นหาไฟล์ index.php ในไดเรกทอรีหลักของเว็บไซต์ เปิด index.php และเพิ่มรหัสนี้โดยตรงก่อนบรรทัดแรกของไฟล์:

error_reporting(E_ALL); 
ini_set('display_errors', TRUE); 
ini_set('display_startup_errors', TRUE); 

คุณอาจลองแก้ไขปัญหา Drupal ด้วยบันทึกข้อผิดพลาดตามที่อธิบายไว้ที่นี่ ..


0

นี่เป็นเธรดเก่า แต่เนื่องจากฉันพบปัญหาเดียวกันนี้เมื่อไม่นานมานี้ให้อินพุตของฉัน ฉันไม่สามารถเข้าถึงเส้นทาง Drupal ใด ๆ เนื่องจากฉันได้รับข้อผิดพลาดนี้เสมอไม่ว่าจะเกิดอะไรขึ้น สิ่งนี้เริ่มเกิดขึ้นหลังจากฉันอัปเดตมุมมองดังนั้นฉันจึงรู้ว่าต้องทำอะไร แต่ฉันไม่สามารถเปิดมุมมองได้ ดังนั้นฉันจึงดูบันทึกของเซิร์ฟเวอร์ Apache นอกเหนือจากวิธีแก้ปัญหาที่ให้ไว้ข้างต้นเช่นการดู drush และ dblogs อาจเป็นประโยชน์แทนการดูบันทึกของเซิร์ฟเวอร์ Apache โดยเฉพาะเมื่อคุณไม่สามารถเข้าถึงเส้นทางแอปพลิเคชันใด ๆ เหล่านี้มักจะปรากฏอยู่ภายใต้ไฟล์ \ logs \ error.log และจะมีรายละเอียดเกี่ยวกับข้อยกเว้นที่ไม่สามารถจัดการได้และสถานที่ที่มันถูกสร้างขึ้นเป็นต้นการแก้ไขด่วนคุณสามารถแสดงความคิดเห็นรหัสที่จะทิ้งข้อยกเว้นและทำการปรับปรุงแอปพลิเคชัน ในกรณีของฉันฉันแสดงความคิดเห็นรหัสโพสต์ที่ฉันสามารถไปดูและทำการปรับปรุงที่จำเป็น หวังว่ามันจะช่วยใครซักคนในสถานการณ์ที่คล้ายกัน


0

นั่นเป็นเรื่องที่น่าสนใจมาก แต่ถ้าคุณเปิดแหล่งที่มาของหน้าเว็บ (CTRL-U) คำเตือนและข้อความแสดงข้อผิดพลาดจะอยู่ที่นั่นพวกมันอยู่ในองค์ประกอบที่ซ่อนอยู่ element-invisibleค้นหา

แก้ไข: $conf['error_level'] = 1;ควรอยู่ในsettings.phpไฟล์เช่นกัน

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