"Trang web này gặp phải một lỗi không mong muốn. Vui lòng thử lại sau."


27

Tôi có lỗi này với Drupal 7

  1. Làm thế nào tôi có thể có thêm một số thông tin về lỗi này? Bất kỳ báo cáo, bất kỳ đăng nhập bất cứ nơi nào? Không có gì trong lỗi php.

  2. Làm thế nào tôi có thể vô hiệu hóa thông báo đó và có một thông báo hữu ích hơn cho mục đích gỡ lỗi?

Lưu ý : câu hỏi của tôi KHÔNG phải là "làm thế nào tôi có thể khắc phục vấn đề này"

Câu trả lời:


27

Lỗi này xuất phát từ một ngoại lệ PHP chưa được phát hiện . Drupal bắt ngoại lệ để không có thông báo lỗi PHP xấu xí nào được hiển thị cho người dùng. Bạn có thể tìm thấy thông tin ngoại lệ trong liên kết 'Thông điệp nhật ký gần đây' trên Báo cáo (hoặc thử đường dẫn này: / admin / báo cáo / dblog). Đảm bảo mô-đun 'Ghi nhật ký cơ sở dữ liệu' được bật vì mô-đun này cung cấp báo cáo này.

Bạn sẽ thấy tất cả các tin nhắn nội bộ đã được tạo. Lọc theo loại 'PHP' và Mức độ nghiêm trọng 'lỗi' và có thể bạn sẽ tìm thấy một thông báo về một ngoại lệ chưa được phát hiện. Điều này gây ra vấn đề của bạn. Bây giờ bạn có thêm thông tin để bạn có thể sửa nó.


Ok cảm ơn, vậy không có cách nào khác để thay đổi hành vi này thành một hành vi tuân thủ gỡ lỗi hơn? (chẳng hạn như ... hiển thị ngoại lệ trên màn hình)
kéo dài

Không, AFAIK không có cách nào dễ dàng để làm điều đó. Bạn có thể thử thiết lập trình xử lý ngoại lệ của riêng mình (sử dụng hàm PHP tiêu chuẩn set_exception_handler) nhưng hãy cẩn thận với các tác dụng phụ.
sanzante

7
Ý tưởng tuyệt vời để kiểm tra /admin/reports/dblog. Tất nhiên, trừ khi, bạn thậm chí không thể đăng nhập vì lỗi ngu ngốc này đã làm hỏng toàn bộ trang web drupal của bạn!
g33kz0r

Chính tôi, đã thấy lỗi này với chế độ xem "FieldException: Cố gắng tạo một trường không xác định ..." Giải pháp cho tôi kích hoạt chế độ xem của drush en - Tôi đang làm việc với những người khác và lấy cập nhật git của họ để tôi nhận được mã mô-đun nhưng tôi cần kích hoạt mô-đun (vì tính năng này có trong cơ sở dữ liệu mà tôi không nhận được yêu cầu kéo, chúng tôi đang sử dụng Tính năng). Hy vọng điều này sẽ giúp những người khác.
trị liệu

4
@ g33kz0r: Bạn có thể sử dụng chương trình theo dõi chương trình drush để xem các thông báo lỗi hoặc nếu trang web của bạn bị hỏng hoàn toàn, hãy kiểm tra bảng theo dõi trong cơ sở dữ liệu nơi các thông báo đó được lưu trữ.
sanzante

15

Drupal 6 & 7

Nếu sử dụng Drush, chỉ cần làm drush vset error_level 1.

Nếu không, hãy chuyển đến " /admin/config/development/logging" và thay đổi cài đặt thành "Lỗi và Cảnh báo"

Drupal 8

Thay vì drush vset/ vget/ vdel, bạn có thể sử dụng cset/ cget/ cdelcho các giá trị cấu hình và sset/ sget/ sdelcho các giá trị trạng thái.


12

CÁCH DỄ DÀNG

Chỉnh sửa settings.php của bạn và thêm một dòng ở đó (đặc biệt là trên trang dev của bạn, bạn chỉ có thể tiếp tục điều này)

$conf['error_level'] = 1;

drush yêu cầu bạn có thể bootstrap cơ sở dữ liệu.


Câu trả lời TỐT NHẤT. Nó tiết kiệm thời gian của tôi.
Austin

6

CÁCH DỄ DÀNG cho Drupal 8 ,

nếu bạn không thể đăng nhập nữa để truy cập các thông điệp tường trình gần đây như được mô tả trong câu trả lời được chấp nhận.

Mở tệp /sites/default/settings.phpbằng trình soạn thảo hoặc ứng dụng khách ftp và thêm dòng này:

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

Sau khi tải lại trang, bạn sẽ thấy một thông báo lỗi đầy đủ, thay vì thông báo chung Trang web gặp lỗi không mong muốn. Vui lòng thử lại sau."


2

Lỗi đó đến từ _drupal_log_error().

Là một sửa chữa nhanh để phát triển, bạn có thể cập nhật chức năng đó để cung cấp thêm thông báo lỗi dài dòng, nhưng hãy chắc chắn rằng bạn thay đổi lại trước khi trang web hoạt động :)


0

Kiểm tra dblog. Đây là nơi tốt nhất để tìm lỗi trong webite Drupal. Đồng thời kiểm tra bảng điều khiển JS để chọn ra các lỗi bổ sung trong trình duyệt của bạn.


Cảm ơn vì dblog (/ admin / báo cáo / dblog). Bây giờ, làm thế nào tôi có thể vô hiệu hóa thông báo đó và có một thông báo hữu ích hơn cho mục đích gỡ lỗi?
kéo dài

1
Dù sao, tôi không nghĩ rằng một lỗi JS có thể gây ra lỗi máy chủ đó ...
diễn ra vào

0

Kiểm tra trong watchdogbảng trong MySQL. Bạn có thể tải xuống Blob ( variablescột) và mở nó bằng Notepad. Nó sẽ hiển thị cho bạn một đối tượng nối tiếp với lỗi của bạn.


0

Thử đi:

mức độ lỗi

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

Để hiển thị lỗi trên trang web Drupal của bạn, hãy tìm tệp index.php trong thư mục chính của trang web của bạn. Mở index.php và thêm mã này trực tiếp trước dòng đầu tiên của tệp:

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

Bạn cũng có thể cố gắng giải quyết các vấn đề về Drupal với Nhật ký lỗi như được mô tả ở đây ..


0

Đây là một chủ đề cũ nhưng như tôi đã gặp vấn đề tương tự gần đây cung cấp đầu vào của tôi. Tôi không thể truy cập bất kỳ đường dẫn Drupal nào vì tôi luôn gặp phải lỗi này cho dù thế nào đi chăng nữa. Điều này bắt đầu xảy ra sau khi tôi thực hiện cập nhật cho chế độ xem để tôi biết những gì cần phải thực hiện nhưng tôi không thể mở chế độ xem. Vì vậy, tôi đã xem xét nhật ký máy chủ Apache. Ngoài các giải pháp được đưa ra ở trên như nhìn vào drush và dbloss, thay vào đó, có thể hữu ích khi xem xét nhật ký máy chủ Apache, đặc biệt là khi bạn không thể truy cập bất kỳ đường dẫn ứng dụng nào. Chúng thường xuất hiện dưới tệp \ log \ error.log và sẽ có các chi tiết về ngoại lệ chưa được xử lý và nơi nó được tạo, v.v. Để khắc phục nhanh, bạn có thể nhận xét mã đang ném ngoại lệ và cập nhật cho ứng dụng. Trong trường hợp của tôi, tôi đã nhận xét bài đăng mã rằng tôi có thể xem được và thực hiện các cập nhật cần thiết. Hy vọng nó sẽ giúp được ai đó trong một số tình huống tương tự


0

Điều đó rất thú vị nhưng nếu bạn mở nguồn trang (CTRL-U) thì tất cả các cảnh báo và thông báo lỗi đều ở đó, chúng chỉ nằm trong một yếu tố ẩn. Tìm kiếm element-invisible.

Chỉnh sửa: $conf['error_level'] = 1;nên được đặt trong settings.phptập tin là tốt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.