Если на экране появилась ошибка:
При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php
Открываем файл .settings.php
находим debug
и заменяем false
на true
:
'exception_handling' =>
array (
'value' =>
array (
'debug' => false, // изменяем значение на true
'handled_errors_types' => 20853,
'exception_errors_types' => 20853,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' =>
array (
'settings' =>
array (
'file' => NULL,
'log_size' => NULL,
),
),
),
'readonly' => false,
),
В результате чего на экране будет подробное описание ошибки:
[Error]
Class 'Assets' not found (0)
D:worklocalhost11wwwlocaltemplatesvoguis_indexheader.php:17
#0: include_once
D:worklocalhost11wwwbitrixmodulesmainincludeprolog_after.php:96
#1: require(string)
D:worklocalhost11wwwbitrixmodulesmainincludeprolog.php:11
#2: require_once(string)
D:worklocalhost11wwwbitrixheader.php:1
#3: require(string)
D:worklocalhost11wwwindex.php:2
С сайта на bitrix пропали некоторые стили. Сделал восстановление через резервную копию. БД не восстанавливал. Теперь не могу попасть ни в админку, ни на сайт пишет: «При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php». Помогите, пожалуйста, желательно очень подробно, так как не имею опыта работы с бэком
DaemonHK
2,2821 золотой знак15 серебряных знаков29 бронзовых знаков
задан 16 фев в 9:14
В файле /bitrix/.settings.php найдите строку 'exception_handling' =>
. Ниже находятся настройки обработки ошибок. Парой строк ниже замените 'debug' => false,
на 'debug' => true,
. После этого включится расширенный вывод ошибок, и вы увидите, где возникла проблема.
ответ дан 16 фев в 13:07
Виктор КаревВиктор Карев
1,0071 золотой знак6 серебряных знаков11 бронзовых знаков
В административном интерфейсе коробочных версий продуктов «1С-Битрикс» вы могли заметить такое уведомление:
С 01.02.2023 будет ограничена поддержка наших продуктов на PHP версии ниже 8.0. Рекомендуемая версии PHP – 8.1 или выше. Вы используете версию PHP 7.4.33. Пожалуйста, запланируйте обновление PHP или обратитесь в техническую поддержку вашего хостинга.
Почему важно обновить PHP
Версия PHP 7.х объявлена устаревшей и больше не поддерживается, для неё не выпускаются исправления функциональных ошибок и ошибок безопасности. Использование версий PHP ниже 8 крайне не рекомендовано.
Вы не сможете установить обновления коробочных версий продуктов «1С-Битрикс» для исправления ошибок и получения нового функционала, пока не обновите PHP до минимальной версии 8.0 или рекомендованной 8.1 в своем серверном окружении.
Запланируйте обновление PHP до минимальной версии 8.0 или до рекомендуемой PHP 8.1 в самое ближайшее время.
Как обновить PHP
Обновление версии PHP необходимо произвести поэтапно. Для этого обратитесь к вашему системному администратору или в техподдержку вашего хостинга.
-
Обязательно создайте резервную копию вашей установки. Это может быть как резервная копия средствами продукта, так и полностью всего сервера, например виртуальной машины VMBitrix.
-
Обновите ядро и все модули продукта до последних доступных версий в разделе Настройки > Marketplace > Обновление платформы.
-
Обновите все сторонние решения из Маркетплейса до последних доступных версий в разделе Настройки > Marketplace > Обновление решений.
-
Обновите версию PHP до минимальной 8.0 или рекомендованной 8.1 на своем сервере.
Если вы используете виртуальную машину VMBitrix, то обновить PHP можно через меню VMBitrix: 1. Manage servers in the pool — 8. Update PHP and MySQL. Подробнее читайте в отдельном курсе.
- Еще раз проверьте и установите все доступные обновления платформы и решений из Маркетплейса.
Куда обращаться в случае ошибок при обновлении версии PHP до 8.х
-
Если после обновлений PHP появятся ошибки в работе стандартных модулей продуктов «1С-Битрикс», то обратитесь в Поддержку24.
Также по модулям из Маркетплейса, в названия которых содержатся
bitrix.*
, нужно обращаться в Поддержку24, например:bitrix.eshop bitrix.sitecommunity bitrix.sitecorporate bitrix.siteinfoportal bitrix.sitepersonal bitrix.learningtemplates
-
По ошибкам в сторонних модулях из Маркетплейса обращайтесь к разработчикам модуля, их контакты указаны на странице этого модуля во вкладке «Поддержка».
Примеры частых ошибок и их решения
Возможные причины ошибок после обновления до PHP 8.х:
- До перехода на PHP 8.х не было обновлено ядро и все модули продукта до последних доступных версий в разделе Настройки > Marketplace > Обновление платформы.
- До перехода на PHP 8.х не были уставлены обновления сторонних решений (они в названии имеют точку) на странице Marketplace > Обновление решений.
- Разработчик не обновил модуль для поддержки PHP 8.
Основные действия по исправлению ошибок после обновления PHP до 8.х:
- Вернуться на предыдущую версию PHP 7.x, когда все работало, обновить компоненты системы и сторонние модули, а затем повторно обновить версию PHP до 8.х.
- Если предыдущие действия не исправили ошибки, то обратиться к разработчику модуля – смотрите раздел выше Куда обращаться в случае ошибок.
- Временно отключить модуль с ошибкой, переместив его из директории
/bitrix/modules
. - Удалить стороннее решение с ошибкой.
Стоить отметить, что в примерах даны лишь решения ошибок для конкретного модуля. Каждая ошибка должна рассматриваться разработчиком индивидуально.
[Ux11] Ошибка описания модуля «name.module». Не установлено соединение с сервером обновлений. [Ux11] Ошибка описания модуля «name.module».
Ошибка может появиться после повышения версии PHP до 8.0 и выше. Сайт при этом работает, но установить или обновить другие решения нельзя, пока сохраняется ошибка.
Решение проблемы:
Исправление в общем случае будет таким: в файле /bitrix/modules/<имя.модуля>/install/index.php
код:
function <имя.модуля>()
заменить на:
function __construct()
При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php.
Решение проблемы:
Подключиться по FTP/SFTP или зайти в панель хостинга, включить вывод ошибок в файле /bitrix/.settings.php
:
'debug' => true,
После чего на сайте будет выведен текст ошибки:
Пример ошибки
Non-static method SuperFunctionsCSuperModRep::checkBack() cannot be called statically (0) /home/bitrix/modules/super.mod/lib/functions/CSuperModRep.php:52 #0: SuperFunctionsCSuperModRep::checkRepActive() /home/bitrix/modules/super.mod/classes/general/CModEvents.php:1621 #1: CModEvents::OnPageStartHandler() /home/bitrix/modules/main/classes/general/module.php:480 #2: ExecuteModuleEventEx(array) /home/bitrix/modules/main/include.php:163 #3: require_once(string) /home/bitrix/modules/main/include/prolog_before.php:14 #4: require_once(string) /home/bitrix/modules/main/include/prolog.php:10 #5: require_once(string) /home/bitrix/header.php:1 #6: require(string) /home/index.php:1
В примере видно, что ошибку отдает сторонний метод CSuperModRep::checkBack()
решения super.mod.
Исправление в общем случае будет таким: в коде checkBack()
нужно правильно объявить статическую функцию:
function checkBack()
заменить на:
public static function checkBack()
PHP Fatal error: $GLOBALS can only be modified using the $GLOBALS[$name] = $value syntax in /www/bitrix/modules/main/tools.php
Данная ошибка может появиться после повышения версии PHP до 8.x в случае, если не были установлены все доступные обновления платформы на версии PHP 7.x.
Решение проблемы:
Эта ошибка была исправлена в обновлении главного модуля main 22.100.0
.
Поэтому необходимо понизить версию PHP до 7.x, произвести обновление продукта и модулей до последней доступной версии. И только потом повысить версию PHP до 8.х.
[TypeError] call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static method COMPBXEEventHandlers::AdminContextMenuShow() cannot be called statically (0)…
Эта ошибка может появиться после повышения версии PHP до 8, но уже не очень очевидна:
Пример ошибки
[TypeError] call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static method COMPBXEEventHandlers::AdminContextMenuShow() cannot be called statically (0) /var/www//bitrix/modules/main/classes/general/module.php:480 #0: ExecuteModuleEventEx /var/www/bitrix/modules/main/interface/admin_ui_list.php:1983 #1: CAdminUiContextMenu->Show /var/www/bitrix/modules/main/interface/admin_ui_list.php:1168 #2: CAdminUiList->ShowContext /var/www/bitrix/modules/main/interface/admin_ui_list.php:630 #3: CAdminUiList->DisplayFilter /var/www/bitrix/modules/iblock/admin/iblock_element_admin.php:5217 #4: include(string) /var/www/bitrix/admin/cat_product_admin.php:3
Из текста ошибки сразу не узнать директорию модуля, но данный метод COMPBXEEventHandlers::AdminContextMenuShow()
принадлежит стороннему модулю.
Решение проблемы:
Исправление в общем случае будет таким: в коде AdminContextMenuShow()
нужно правильно объявить статическую функцию:
function AdminContextMenuShow()
заменить на:
public static function AdminContextMenuShow()
Белый экран после повышения версии PHP до 8.х, а на PHP 7.4 все работает
Такая ошибка может быть из-за того, что в настройках PHP установлен параметр short_open_tag = Off
.
Решение проблемы:
- Нужно задать в конфигурационном файле PHP:
short_open_tag = On
. - Проверить логи веб-сервера на предмет ошибок и устранить их.
- Также можно просмотреть ошибки на странице сайта с белым экраном: нажать правую кнопку мыши и выбрать Просмотр кода страницы, пролистать страницу вниз и проверить имеются ли ошибки на ней.
Спасибо, помогло!
Спасибо
Это не то, что я ищу
Написано очень сложно и непонятно
Есть устаревшая информация
Слишком коротко, мне не хватает информации
Мне не нравится, как это работает
С сайта на bitrix пропали некоторые стили. Сделал восстановление через резервную копию. БД не восстанавливал. Теперь не могу попасть ни в админку, ни на сайт пишет: «При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php». Помогите, пожалуйста, желательно очень подробно, так как не имею опыта работы с бэком
-
Вопрос задан16 февр.
-
196 просмотров
На чтение 4 мин. Просмотров 1.3k. Опубликовано 15.12.2019
Уведомление об ошибке в админке битрикс, или непосредственно в визуальной его части. При выполнении скрипта возникла ошибка.
Это уведомление, я назову это именно так — уведомление, т.к. мы еще не знаем в чем же дело, битрикс нас просто информирует о том, что при выполнении скрипта возникла ошибка, не более того.
Итак рассмотрим по порядку:
Содержание
- Почему может появиться это уведомление?
- Что делать, если появляется сообщение «при выполнении скрипта возникла ошибка»?
- Как в битрикс включить вывод ошибок?
- Методы выявление ошибки
- Основные причины появления белого экрана
Почему может появиться это уведомление?
- Если уведомление появляется при разработке в публичной части сайта, то это однозначно ошибка в скрипте, вызвана, к примеру, ошибкой в синтаксисе в файле шаблона или в init.php, использованием функции, которая отсутствует и т.п.
- Если уведомление появляется в админке сайта, то это может быть вызвано ошибками, к примеру, в init.php или ошибками в ядре битрикса, которые обусловлены не той версией php. Это могло произойти, если битрикс у вас давно не обновлялся и при этом вы изменили версию php на, к примеру, php 7.1.
Теперь рассмотрим пути решения этой проблемы.
Что делать, если появляется сообщение «при выполнении скрипта возникла ошибка»?
Прежде всего необходимо включить вывод ошибок и предупреждений и посмотреть где у нас проблема.
Как в битрикс включить вывод ошибок?
Для старого ядра включить вывод ошибок можно в файле dbconn.php:
Чтобы в битрикс включить вывод ошибок для нового ядра D7 необходимо в файле .settings.php поставить значение debug => true:
Сейчас, наверное, уже сложно встретить сайты только на старом ядре, поэтому включать вывод ошибок в битрикс можно только в файле .settings.php
После устранения всех ошибок не забываем отключать вывод ошибок, пользователю не нужно их видеть, если вдруг что-нибудь еще всплывет. Всем удачи и успехов в работе!
Порой на сайте разработанном на 1с Битрикс вместо контента появляется белый экран. Были случаи появления чистого экрана после авторизации в админке.
Методы выявление ошибки
1. В файле .htaccess включаем вывод ошибок:
2. В файле /bitrix/php_interface/dbconn.php :
3. Смотреть лог ошибок (error log) веб-сервера (апач, файл error_log ).
4. В файле /bitrix/.settings.php установить
5. Проверить содержимое переменной $_SERVER[«DOCUMENT_ROOT»] . Там должен быть установлен корректный путь, иначе не подключаются файлы системы.
6. Запустить скрипт проверки системы на соответствия требованиям для стабильной работы 1с Битрикс bitrix_server_test.php
Основные причины появления белого экрана
- Кривое редактирование /bitrix/php_interface/init.php : ошибки, лишний пробел после ?>
- Такая же проблема с белым экраном возникла после переноса на другой сервер.
- Проверить настройку PHP — short_open_tag , которая должна быть в On.
- Не хватает оперативной памяти( memory_limit по умолчанию 128). Проблема решается следующим образом. Заходим в /bitrix/php_interface/dbconn.php . Редактируем ini_set(«memory_limit», «512M»);
Если вы сталкивались с этой проблемой пишите в комментариях, как её решили.
Если у вас на сайте произошла ошибка, но она не отображается и выводиться надпись о том, что ошибки нужно включить в файле .settings.php, то значит они у вас отключены в этом файле.
Включить их просто, для этого надо собственно открыть этот файл по FTP или через функционал Битрикс по следующему пути в админке битрикс
Рабочий стол->Контент->Структура сайта->Файлы и папки->bitrix
Здесь представлен многомерный массив данных, ключ-значение. Это основные настройки вашего сайта на битриксе.
Что бы включить отображение ошибок находим строку ‘debug’ которая находится внутри ‘exception_handling’->’value’ и ставим ей значение true вместо false.
Что бы настроить какие именно ошибки мы хотим отображать в ключе ‘exception_errors_types’ указываем код ошибок, например 29687, но он мало понятен, поэтому лучше использовать в значение данного ключа константы через пробел:
E_DEPRECATED,
Здесь мы перечислили все ошибки, предупредения и тд. Если нужно вывести только ошибки, то остальные константы можно просто убрать, поскольку уведомление