"На веб-сайті виникла несподівана помилка. Будь-ласка спробуйте пізніше."


27

У мене ця помилка з Drupal 7

  1. як я можу отримати додаткову інформацію про цю помилку? Будь-який звіт, будь-який журнал будь-де? Нічого в помилках php.

  2. як я можу відключити це повідомлення і мати більше корисного для налагодження?

Примітка : моє запитання НЕ "як я можу виправити цю проблему"

Відповіді:


27

Ця помилка походить від невдалого виключення PHP . Drupal виловлює винятки, тому користувачеві не відображається потворне повідомлення про помилку PHP. Інформацію про винятки можна знайти у посиланні "Останні повідомлення журналу" у "Звіти" (або спробуйте цей шлях: / admin / messages / dblog). Переконайтесь, що модуль "Журнал баз даних" увімкнено, оскільки цей модуль надає цей звіт.

Ви побачите всі створені внутрішні повідомлення. Фільтруйте за типом "PHP" та "Помилка серйозності", і, ймовірно, ви знайдете повідомлення про винятковий виняток. Це спричиняє вашу проблему. Тепер у вас є більше інформації, щоб ви могли її виправити.


Добре дякую, тож не існує нестандартного способу змінити цю поведінку на більш сумісну з налагодженням? (наприклад, ... показ винятку на екрані)
Theredled

Ні, AFAIK немає простого способу зробити це. Ви можете спробувати встановити власний обробник винятків (використовуючи стандартну функцію PHP set_exception_handler), але остерігайтеся побічних ефектів.
sanzante

7
Відмінна ідея для перевірки /admin/reports/dblog. Якщо, звичайно, ви навіть не можете увійти в систему, оскільки ця дурна помилка сприйняла весь ваш Drupal сайт!
g33kz0r

Я сам бачив цю помилку з переглядом "FieldException: Спроба створити поле невідомого ..." Рішення для мене, що дозволило drush en viewreference працювало - я працюю з іншими людьми і витягую їх оновлення git, тому я отримую код модуля, але я потрібно включити модуль (оскільки активація знаходиться в базі даних, яку я не отримую в запиті на витяг, ми використовуємо функції). Сподіваюся, це допомагає іншим людям.
therobyouknow

4
@ g33kz0r: Ви можете використовувати друкований сторожовий показ для перегляду повідомлень про помилки або якщо ваш сайт повністю порушений, перевірте таблицю сторожових служб у базі даних, де зберігаються ці повідомлення.
sanzante

15

Друпал 6 і 7

Якщо ви використовуєте Drush, просто зробіть drush vset error_level 1.

В іншому випадку перейдіть до " /admin/config/development/logging" та змініть налаштування на "Помилки та попередження"

Друпал 8

Замість drush vset/ vget/ vdelви можете використовувати cset/ cget/ cdelдля значень конфігурації та sset/ sget/ sdelдля значень стану.


12

ЛЕГКИЙ ШЛЯХ

Відредагуйте налаштування.php і додайте туди рядок (особливо на своєму розробнику, ви можете просто тримати це ввімкнено)

$conf['error_level'] = 1;

drush вимагає від вас можливості завантажувати базу даних.


НАЙКРАЩА відповідь. Це врятувало мій час.
Остін

6

ПРОСТИЙ ШЛЯХ для Drupal 8 ,

якщо ви більше не можете увійти, щоб отримати доступ до останніх повідомлень журналу, як описано у прийнятій відповіді.

Відкрийте файл /sites/default/settings.phpза допомогою редактора або ftp-клієнта та додайте цей рядок:

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

Після перезавантаження сторінки ви побачите повне повідомлення про помилку, а не загальне "На веб-сайті виникла несподівана помилка. Будь-ласка спробуйте пізніше."


2

Ця помилка походить від _drupal_log_error().

Як швидке виправлення для розробки, ви можете оновити цю функцію, щоб надати більше детальних повідомлень про помилки, але переконайтеся, що ви їх змінили до того, як веб-сайт вийде наживо :)


0

Перевірте dblog. Це найкраще місце для пошуку помилок на веб-сайті Drupal. Також перевірте консоль JS, щоб виявити додаткові помилки у вашому браузері.


Дякуємо за dblog (/ admin / messages / dblog). Тепер, як я можу відключити це повідомлення та отримати корисніше для налагодження?
відзначено

1
У будь-якому разі, я не думаю, що помилка JS може спричинити помилку сервера ...
theredled

0

Перевірте watchdogтаблицю в MySQL. Ви можете завантажити Blob ( variablesстовпець) і відкрити його за допомогою блокнота. Він покаже вам серіалізований об’єкт із вашою помилкою.


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

Це стара тема, але, як я нещодавно зіткнувся з цим самим питанням, надавши свої матеріали. Мені не вдалося отримати доступ до жодного шляху Друпала, оскільки я завжди отримував цю помилку, незалежно від того. Це почалося після того, як я здійснив оновлення для перегляду, тому я знав, що потрібно зробити, але я не зміг відкрити представлення даних. Таким чином я заглянув у журнали сервера Apache. Крім рішення, наведеного вище, наприклад, перегляд друку та dblogs, може бути корисним замість того, щоб заглянути в журнали сервера Apache, особливо коли ви не можете отримати доступ до жодного із шляхів програми. Зазвичай вони присутні у файлі \ logs \ error.log, і вони матимуть деталі щодо необробленого винятку та місця його генерування тощо. Як швидке виправлення, ви можете прокоментувати код, який кидає виняток, та здійснити оновлення програми. У моєму випадку я прокоментував повідомлення з кодом, що мені вдалося перейти до перегляду та зробити необхідні оновлення. Сподіваюся, це допоможе комусь у деяких подібних ситуаціях


0

Це дуже цікаво, але якщо ви відкриєте джерело сторінки (CTRL-U), то всі попередження та повідомлення про помилки є, вони знаходяться просто в прихованому елементі. Шукати element-invisible.

Правка: також $conf['error_level'] = 1;слід розміщувати у settings.phpфайлі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.