Bitrix вывести ошибки

Блог «Дивасофт»

23 января 2017, Михаил

В файле bitrix/.settings.php


<?php 
'exception_handling' => 
  array (
    'value' => 
    array (
      'debug' => true,
      'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE & ~E_DEPRECATED,
      'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING,
      'ignore_silence' => false,
      'assertion_throws_exception' => true,
      'assertion_error_type' => 256,
      'log' => 
      array (
        'settings' => 
        array (
          'file' => 'bitrix/err.log',
          'log_size' => 1000000,
        ),
      ),
    ),
    'readonly' => false,
  )
?>

Логи будут в файле bitrix/err.log

Если на экране появилась ошибка:

При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .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

Если у вас на сайте произошла ошибка, но она не отображается и выводиться надпись  о том, что ошибки нужно включить в файле .settings.php, то значит они у вас отключены в этом файле.

Включить их просто, для этого надо собственно открыть этот файл по FTP или через функционал Битрикс по следующему пути в админке битрикс

Рабочий стол->Контент->Структура сайта->Файлы и папки->bitrix

Здесь представлен многомерный массив данных, ключ-значение. Это основные настройки вашего сайта на битриксе.

Что бы включить отображение ошибок находим строку ‘debug’  которая находится внутри ‘exception_handling’->’value’ и ставим ей значение true вместо false.

Что бы настроить какие именно ошибки мы хотим отображать в ключе ‘exception_errors_types’  указываем код ошибок, например 29687, но он мало понятен, поэтому лучше использовать в значение данного ключа константы через пробел:

‘handled_errors_types’ => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_DEPRECATED, 

Здесь мы  перечислили все ошибки, предупредения и тд. Если нужно вывести только ошибки, то остальные константы можно просто убрать, поскольку уведомление 

Загрузка

1. Создаю в корне сайта файл error.php со следующим содержимым:

<?php
echo show_me_error;
?>

2. Открываю в браузере site.ru/error.php — белый экран

3. Смотрю bitrix/php_interface/dbconn.php:
$DBDebug = true;

4. Смотрю bitrix/php_interface/.settings.php:

...
  array (
    'value' => 
    array (
      'debug' => true,
      'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE & ~E_DEPRECATED,
      'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING,
      'ignore_silence' => true,
      'assertion_throws_exception' => false,
      'assertion_error_type' => 256,
      'log' => array (
        'settings' => array (
        'file' => 'bitrix/modules/error.log',
        'log_size' => 1000000,
        ),
      ),  
    ),
    'readonly' => false,
  ),
...

5. Смотрю bitrix/modules/error.log — кучу левых Warning, однако моей ошибки в моём error.php нет
6. Иду в .htaccess:

php_value display_errors 1
php_value error_reporting 7

7. Иду на сервере в /var/log/nginx/error.log — то же самое, ничего о моей ошибке

Как мне на экране при открытии error.php увидеть мою ошибку?

Особый файл

Bitrix Framework имеет ряд специфичных настроек ядра, которые не имеют визуального интерфейса редактирования. Этот подход вызван тем, что изменение настроек или ошибка в них легко могут привести к неработоспособности системы (настройки подключения к базе данных, настройки кеширования и т.д.).

Настройки в D7 выполняются в файле /bitrix/.settings.php. Напомним, что в старом ядре аналогичные настройки выполнялись в файле /bitrix/php_interface/dbconn.php. Файл .settings.php структурно сильно отличается от прежнего dbconn.php.

Примечание: т.к. в системе параллельно используются 2 ядра — старое ядро и D7, то и оба файла настроек используются одновременно. Поэтому необходимо производить настройки обоих файлов.

Даже если вы используете код только старого ядра, то файл .settings.php должен быть создан. Возможна ситуация, когда при установке обновлений какой-то из встроенных механизмов системы будет переписан на ядро D7. Если этот файл корректно не настроен, то это может привести к неработоспособности системы.

Иногда бывают ситуации, что файл .settings.php отсутствует. Его можно создать в автоматическом режиме, если выполнить в

командной строке

Командная PHP-строка — инструмент системы, позволяющий запускать произвольный код на PHP с вызовами функций. Подробнее…


:
BitrixMainConfigConfiguration::wnc();.

Править параметры можно с помощью класса Configuration (BitrixMainConfigConfiguration).

Примечание: Некоторые секции файла настроек содержат параметр readonly. Этот параметр означает, что данные настройки не будут изменены через API.

Кроме этого настройки могут задаваться в файле .settings_extra.php. Базовый файл настроек содержит неизменные настройки, к которым есть API. Файл .settings_extra.php может содержать произвольный код, который меняет настройки динамически. Соответственно к нему нет API.

Описание параметров

Ниже описаны параметры, которые возможны для изменения:

  • Секция cache
  • Секция exception_handling
  • Секция connections
  • Корневая секция
  • Секция pull
  • Секция http_client_options
  • Секция services
  • Секция routing
  • Секция session
  • Ключ crypto_key
  • Секция smtp
  • Секция cache

    Отвечает за настройки кеширования, позволяет задать способ кеширования и его параметры.

    До версии 18.5.200 действовал такой формат записи:

    В версии 18.5.200 формат записи был изменён одновременно с возможностью использовать в кешировании Redis. Оба формата на данный момент работоспособны, но вендор настойчиво рекомендует использовать новый вариант записи.

    Примеры нового формата записи для разных способов кеширования.

    Параметр Значение
    type В качестве значения можно задать:

    • memcache
    • apc
    • xcache
    • files

    • redis

      С версии 18.5.200.

    • none

    или указать массив со значениями:

    • class_name — класс, реализующий интерфейс ICacheEngine,
    • required_file — подключаемый файл с путем относительно папки /bitrix или /local (если требуется),
    • required_remote_file — подключаемый файл с абсолютным путем (если требуется),
    • extension — будет произведена попытка подключения расширения через extension_loaded. И только тогда подключится уже указанный класс.
    cache_flags Запрет на кеширование выборки или изменение ttl. Для этого установите ключи, куда входит название таблицы и суффиксы:

    'cache_flags'=>   array(
          'value'=> array(
             "b_group_max_ttl" => 200,
             "b_group_min_ttl" => 100,
          )
       ),

    Устанавливая b_group_max_ttl = 0, администратор запрещает кеширование этой сущности. Устанавливая b_group_min_ttl = 86400, админ расширяет наш TTL до суток (если в коде написано 3600).

    Примечание: Кроме type могут быть дополнительные параметры, если они нужны конкретному классу кеширования.

    Примечание: Настройки memcache могут задаваться так же в файле /bitrix/.settings_extra.php.

    Пример файла /bitrix/.settings_extra.php

    В базовом файле .settings.php содержатся неизменные настройки, к которым есть API. Файл .settings_extra.php может содержать произвольный код, который меняет настройки динамически в зависимости от каких-либо факторов. Соответственно для изменения настроек в этом файле нет API. Естественно в ходе выполнения этого произвольного кода должен быть возвращен массив подобной структуры базового файла.

    Секция exception_handling

    Отвечает за обработку ошибок.

      'exception_handling' => array (
        'value' => array (
          'debug' => false,
          'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE,
          'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING & ~E_DEPRECATED,
          'ignore_silence' => false,
          'assertion_throws_exception' => true,
          'assertion_error_type' => 256,
          'log' => array (
            'settings' => array (
              'file' => 'bitrix/modules/error.log',
              'log_size' => 1000000,
            ),
          ),
        ),
        'readonly' => false,
      ),
    Параметр Значение
    debug Ключ отвечает за то, будет ли выведена ошибка на страницу в браузере. Выводить ошибки рекомендуется только на время разработки или отладки. Иначе потенциально может быть разглашение информации.
    handled_errors_types В ключе задаются типы ошибок, которые система отлавливает (не игнорирует).
    exception_errors_types В ключе задаются типы ошибок, при которых система выбрасывает исключение.
    ignore_silence Ключ отменяет действие оператора управления ошибками (@).
    log В ключе задаются параметры логирования ошибок. Если ключа нет — логирования не будет. Если задать как показано в примере:

    'log' => array (
       'settings' => array (
          'file' => 'bitrix/modules/error.log',
          'log_size' => 1000000,
       ),
    ),

    то логироваться будет в файл с ограничением его размера. Если в корне сайта лежит файл error.php и выключен вывод ошибок на экран, то этот файл будет подключен в случае возникновения необработанного исключения.

    Если задать в общем случае, то можно логировать куда угодно:

    'log' => array(
       'class_name' => 'MyLog', // custom log class, must extends ExceptionHandlerLog; 
                                // can be omited, in this case default DiagFileExceptionHandlerLog will be used
       'extension' => 'MyLogExt', // php extension, is used only with 'class_name'
       'required_file' => 'modules/mylog.module/mylog.php' // included file, is used only with 'class_name'
       'settings' => array( // any settings for 'class_name'
          ),
    ),

    В приведенном примере:

    • class_name — пользовательский класс, наследуемый от ExceptionHandlerLog. Может быть не указан. В этом случае будет использоваться BitrixMainDiagFileExceptionHandlerLog.
    • extension — расширение PHP, использовать можно только вместе с class_name.
    • required_file — включаемый файл. Используется только вместе с class_name.
    • settings — настройки для класса, указанного в class_name
    assertion_throws_exception Включение поддержки команды assert.
    assertion_error_type В ключе задаются типы ошибок, для которых не верный assert выбрасывает исключение.

    В handled_errors_types, exception_errors_types, assertion_error_type необходимо передать тип ошибки. Тип ошибки представляет из себя числовой код. Но коды знать и помнить не нужно. Например, параметр exception_errors_types. Что означает данная запись: E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING?

    Для начала обратимся к уровням ошибок интерпретатора PHP. Есть определенные значения и определенные константы, которые им соответствуют. В нашем же случае данная запись означает, что E_ALL (значение константы 2047), побитовое и не E_NOTICE, и не E_WARNING и не E_STRICT и не E_USER_WARNING и не E_USER_NOTICE и не E_COMPILE_WARNING. То есть E_ALL за исключением далее указанных констант, которые определяют тот или иной уровень ошибок интерпретатора PHP.

    Секция connections

    Внимание! С версии главного модуля 20.900.0 ядро продукта не использует параметры соединения БД из файла dbconn.php, настройки читаются только из .settings.php.

    Параметры соединения с базой данных и другими источниками данных. Задается имя класса и параметры соединения.

    'connections' => array (
            'value' => array (
                'default' => array (
                    'className' => 'BitrixMainDBMysqlConnection',
                    'host' => 'localhost:31006',
                    'database' => 'admin_bus',
                    'login' => 'admin_bus',
                    'password' => 'admin_bus',
                    'options' => 2,
                    'handlersocket' => array (
                        'read' => 'handlersocket',
                    ),
                ),
                'handlersocket' => array (
                    'className' => 'BitrixMainDataHsphpReadConnection',
                    'host' => 'localhost',
                    'port' => '9998',
                ),
            ),
            'readonly' => true,
        ),

    Внимание: Начиная с версии ядра 14.5.2 и выше возможно использование расширения mysqli.

    'className' => 'BitrixMainDBMysqliConnection',
    

    Также для этого в PHP должно быть установлено расширение mysqli, дополнительные проверки на наличие расширения не производятся! Включать mysqli нужно отдельно для старого (dbconn.php) и (.settings.php) ядра D7.

    Параметр Значение
    options Задаются флаги постоянного соединения и отложенности соединения с базой. Например:
    Connection::PERSISTENT == 1
    Connection::DEFERRED == 2
    Можно записывать их комбинации с помощью битовых операций. Например 3 — это и PERSISTENT, и DEFERRED.
    handlersocket В ключе указывается, какое соединение использовать для чтения (ключ read). Необходимо создать подключение, где будут указаны класс, хост и порт. В примере кода выше установлен параметр read, у которого указано значение handlersocket. А ниже собственно описание для

    соединения handlersocket

    Традиционные ACID Базы данных в целом ряде задач затрудняют реализацию проектов. Для решения этих задач были предложены технологии NoSQL и HandlerSocket (в виде плагина к обычной MySQL).

    Подробнее…

    .

    className имя класса, в которой собственно реализуется работа с конкретным типом БД.
    host имя хоста, где находится база данных. можно указать с портом
    database имя базы
    login логин пользователя базы данных
    password пароль пользователя базы данных

    Корневая секция

    В корневой секции размещаются настройки общего характера.

    Параметр Значение
    disable_iconv Запрещает использование библиотеки iconv. Аналог константы BX_ICONV_DISABLE в старом ядре.
    logger Логгеры, реализующие интерфейс PSR-3. Подробнее…

    Секция pull

    Эта секция реально нужна только для хостинг-партнеров (для автоматизации развертывания), для всех остальных рекомендуется использовать настройку через административный интерфейс.

    Пример кода секции и таблица параметров

    Секция http_client_options

    Секция задаёт опции по умолчанию для класса BitrixMainWebHttpClient.

    Параметр Значение
    redirect по умолчанию true, производить редирект
    redirectMax максимальное число таких редиректов (по умолчанию 5)
    waitResponse если true, то — ожидание ответа (по умолчанию), в ином случае — сразу возврат ответа
    socketTimeout время ожидания ответа в секундах (по умолчанию 30)
    streamTimeout таймаут потока в секундах (по умолчанию 60)
    version версия http — 1.0 или 1.1 (по умолчанию 1.0)
    proxyHost / proxyPort / proxyUser / proxyPassword группа параметров для установки прокси
    compress если true, будет послан Accept-Encoding: gzip
    charset кодировка для тела объекта (используется в поле заголовка запроса Content-Type для POST и PUT)
    disableSslVerification если true, верификация ssl-сертификатов производиться не будет

    Пример настройки:

      'http_client_options' =>
       array (
         'value' =>
            array (
             'redirect' => true,//делаем редиректы, если требуется
             'redirectMax' => 10,//но не более 10
             'version' => '1.1'//работаем по протоколу http 1.1
            ),
         'readonly' => false,
       ),

    Правильно ли вы указали настройки, можно проверить так:

    use BitrixMainConfigConfiguration;
    print_r(Configuration::getValue("http_client_options"));

    Должен быть выведен ваш массив.

    Секция services

    Секция предназначена для регистрации сервисов. Подробнее о настройках смотрите в уроке

    Сервис Локатор

    Сервис локатор (локатор служб) — это шаблон проектирования для удобной работы с сервисами приложения. Идея сервиса в том, что вместо создания конкретных сервисов напрямую (с помощью new), используется специальный объект (сервис локатор), который будет отвечать за создание, нахождение сервисов.

    Подробнее …

    Секция routing

    Секция отвечает за подключение файлов с конфигурацией маршрутов

    роутинга

    Доступно в модуле main начиная с версии 21.100.0.

    Подробнее…

    , которые располагаются в папках /bitrix/routes/ и /local/routes/. Для подключения файлов опишите их:

    'routing' => ['value' => [
      'config' => ['web.php', 'api.php']
    ]], 
    
    // подключатся файлы:
    // /bitrix/routes/web.php, /local/routes/web.php,  
    // /bitrix/routes/api.php, /local/routes/api.php
    

    Секция session

    Ядро поддерживает четыре варианта для хранения (файлы, redis, database, memcache) данных сессии. Способ хранения описывается в секции session. Подробнее.

    Ключ crypto_key

    Чтобы ядро могло шифровать данные необходимо указать в настройках /bitrix/.settings.php ключ crypto_key. Подробнее…

    Секция smtp

    С версии 21.900.0 модуля main в файле /bitrix/.settings.php можно использовать опцию smtp, которая позволяет

    включить


    Чтобы в продуктах 1С-Битрикс: Управление сайтом и коробочных версиях Битрикс24 включить возможность использования SMTP-сервера отправителя, отредактируйте файл /bitrix/.settings.php, добавив следующий код:

    Подробнее…

    возможность использования SMTP-сервера отправителя и организовать разделение потоков отправки писем.

    Список ссылок по теме:

    • Пример скрипта для редактирования настроек. (блог)

    На чтение 4 мин. Просмотров 1.2k. Опубликовано 15.12.2019

    Уведомление об ошибке в админке битрикс, или непосредственно в визуальной его части. При выполнении скрипта возникла ошибка.

    Это уведомление, я назову это именно так — уведомление, т.к. мы еще не знаем в чем же дело, битрикс нас просто информирует о том, что при выполнении скрипта возникла ошибка, не более того.

    Итак рассмотрим по порядку:

    Содержание

    1. Почему может появиться это уведомление?
    2. Что делать, если появляется сообщение «при выполнении скрипта возникла ошибка»?
    3. Как в битрикс включить вывод ошибок?
    4. Методы выявление ошибки
    5. Основные причины появления белого экрана

    Почему может появиться это уведомление?

    • Если уведомление появляется при разработке в публичной части сайта, то это однозначно ошибка в скрипте, вызвана, к примеру, ошибкой в синтаксисе в файле шаблона или в 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

    Основные причины появления белого экрана

    1. Кривое редактирование /bitrix/php_interface/init.php : ошибки, лишний пробел после ?>
    2. Такая же проблема с белым экраном возникла после переноса на другой сервер.
    3. Проверить настройку PHP — short_open_tag , которая должна быть в On.
    4. Не хватает оперативной памяти( 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,

    Здесь мы перечислили все ошибки, предупредения и тд. Если нужно вывести только ошибки, то остальные константы можно просто убрать, поскольку уведомление

    На чтение 4 мин. Просмотров 1.3k. Опубликовано 15.12.2019

    Уведомление об ошибке в админке битрикс, или непосредственно в визуальной его части. При выполнении скрипта возникла ошибка.

    Это уведомление, я назову это именно так — уведомление, т.к. мы еще не знаем в чем же дело, битрикс нас просто информирует о том, что при выполнении скрипта возникла ошибка, не более того.

    Итак рассмотрим по порядку:

    Содержание

    1. Почему может появиться это уведомление?
    2. Что делать, если появляется сообщение «при выполнении скрипта возникла ошибка»?
    3. Как в битрикс включить вывод ошибок?
    4. Методы выявление ошибки
    5. Основные причины появления белого экрана

    Почему может появиться это уведомление?

    • Если уведомление появляется при разработке в публичной части сайта, то это однозначно ошибка в скрипте, вызвана, к примеру, ошибкой в синтаксисе в файле шаблона или в 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

    Основные причины появления белого экрана

    1. Кривое редактирование /bitrix/php_interface/init.php : ошибки, лишний пробел после ?>
    2. Такая же проблема с белым экраном возникла после переноса на другой сервер.
    3. Проверить настройку PHP — short_open_tag , которая должна быть в On.
    4. Не хватает оперативной памяти( 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,

    Здесь мы перечислили все ошибки, предупредения и тд. Если нужно вывести только ошибки, то остальные константы можно просто убрать, поскольку уведомление

    Обработка ошибок в Битрикс

    При разработке под Битрикс можно пользоваться не только логами, установленными в конфигурации сервера, но и своими. Для этого нужно настроить обработчик ошибок в секции exception_handling в файле /bitrix/.settings.php.

    'exception_handling' =>
        array (
            'value' =>
                array (
                  'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE & ~E_DEPRECATED,
                  'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING,
                  'ignore_silence' => true,
                  'assertion_throws_exception' => false,
                  'assertion_error_type' => 256,
                  'debug' => true,
                  'log' => array (
                                'settings' => array (
                                'file' => 'bitrix/modules/error.log',
                                'log_size' => 1000000,
                                ),
                ),
        ),
    ),
    
    • handled_errors_types — типы обрабатываемых ошибок

    • exception_errors_types — типы ошибок, в случае которых системой выбрасывается исключение, и работа скрипта останавливается

    • ignore_silence — отменить действие оператора подавления ошибок (значок @ перед функцией, например @file(), документация).

    • assertion_throws_exception — выбрасывают ли утверждения (assert()) исключения.

    • assertion_error_type — тип ошибки для неверного утверждения (по умолчанию — 256 E_USER_ERROR)

    • debug — если выставить debug = true, информация об ошибке будет выведена пользователю в браузер. Если debug = false, при возникновении ошибки будет выведено стандартное сообщение от Битрикс, кроме ошибок E_ERROR | E_PARSE

    if ($this->debug)
    {
        error_reporting($this->handledErrorsTypes);
        @ini_set('display_errors', 'On');
        @ini_set('display_startup_errors', 'On');
        @ini_set('report_memleaks', 'On');
    }
    else
    {
        error_reporting(E_ERROR | E_PARSE);
    }
    

    При отключении режима отладки, также сбрасываются настройки для assert()

    if ($this->debug)
    {
      assert_options(ASSERT_ACTIVE, 1);
      assert_options(ASSERT_WARNING, 0);
      assert_options(ASSERT_BAIL, 0);
      assert_options(ASSERT_QUIET_EVAL, 0);
      assert_options(ASSERT_CALLBACK, array($this, "handleAssertion"));
    }
    else
    {
       assert_options(ASSERT_ACTIVE, 0);
    }
    
    • log — секция с указанием логгера. Если пусто, то запись ошибок происходить не будет. В данном случае по умолчанию всю работу на себя возьмет объект класса BitrixMainDiagFileExceptionHandlerLog.
    • settings — секция с настройками обработчика ошибок. Можно задавать произвольные параметры. Они все передадутся массивом в метод initialize() обработчика.
    • file — относительный путь к файлу логов от корневой директории сайта (BitrixMainApplication::getDocumentRoot().’/’.$file).
    • log_size — максимальный размер файла логов в байтах.

    Можно использовать собственный обработчик ошибок для записи логов. Для этого в секции log нужно указать:

    'class_name' => 'MyLog',
    'extension' => 'MyLogExt',
    'required_file' => 'modules/mylog.module/mylog.php'
    
    • class_name — имя класса-обработчика. Класс должен наследоваться от BitrixMainDiagExceptionHandlerLog. Метод write в 16 версии отличается от реализации в 15 версии, эта несовместимость может сломать сайт, будьте внимательны.
    • extension — подключаемое расширение, содержащее класс-обработчик
    • required_file — файл, содержащий нужный класс.

    Модули АХТУНГ 500 И АХТУНГ 500 ПРО

    Модули Ахтунг 500 и Ахтунг 500 ПРО предназачены для мгновенного оповещения об ошибках по e-mail и через браузер, когда администратор находится на сайте.

    Мониторинг ошибок происходит не только через обработчик ошибок Битрикса, но и через чтение файлов логов сервера, есть поиск.

    Перейти к подробному описанию Ахтунг 500 ПРО

    На данной вкладке выполняется настройка общих параметров Главного модуля.

    Поле Описание Системные настройки Язык по умолчанию для административной части Определяет, какой язык используется для административной части по умолчанию. Название сайта Название, используемое для всех сайтов по умолчанию. URL сайта (без http://) Web-адрес, используемый по умолчанию в качестве адресов сайтов, работающих под управлением системы (вводится без http://). Например: www.mysite.com Режим вывода ошибок (error_reporting) Определяет, какие сообщения об ошибках в работе системы будут выводиться на экран (обычно используется для отладки).

    • Только ошибки — выводить сообщения только об ошибках;
    • Ошибки и предупреждения— выводить сообщения об ошибках, а также предупреждения о возможности возникновения ошибки;
    • Не выводить— не показывать сообщения об ошибках.
    Использовать горячие клавиши Разрешение/запрет на использование горячих клавиш в продукте. Галерея смайлов для парсера Выбор набора смайлов, который будет использован парсером системы. Выбирается из загруженных наборов на странице Наборы смайлов. Куки Префикс для названия кук (без точек и пробелов) Строка, добавляемая к имени cookie.

    Распространять куки на все домены (только для https) Использовать общие файлы cookies для всех доменов. Используется для модулей Статистика, Реклама, Опросы, Форумы и некоторых других модулей.

    Установка флага в это поле также дает возможность организовать «сквозную» авторизацию на сайтах, работающих под управлением системы.

    Устанавливать для кук авторизации атрибут secure (только для https) Определяет, будет ли использоваться шифрация при сохранении идентификационной информация в файлах cookies.

    Распространять авторизацию на все домены (только для https) Установка флага в это поле позволяет организовать «сквозную» авторизацию на всех сайтах, работающих под управлением системы. Т.е. авторизация пользователя в одном домене автоматически будет распространяться на все домены всех сайтов. Предварительно необходимо разрешить распространение файлов cookies на все домены. Файлы Ограничение дискового пространства (Мб) При необходимости вы можете задать ограничение (в Мб) на дисковое пространство. Папка по умолчанию для загрузки файлов Папка, в которую будут попадать файлы (например, картинки) при загрузке на сайт. Путь к папке указывается относительно корня сайта. Сохранять исходные имена загружаемых файлов Если опция отключена, то при загрузке файлов на сайт (например, изображений) оригинальные имена этих файлов сохранены не будут. Файлам будут автоматически присваиваться имена, состоящие из случайных символов.

    Если же опция включена, то вместо переименования файлов создаётся подпапка с именем, состоящим из случайных символов; само же имя файла сохраняется. Это позволяет сохранять оригинальное осмысленное имя файла, что полезно, например, при скачивании файла посетителями.

    Производить транслитерацию имени файла Если же опция включена, то при загрузке файла произойдёт автоматическая транслитерация имени файла, если исходный файл имеет название на кириллице.

    Функция работает, если включена опция Сохранять исходные имена загружаемых файлов

    Автоматически заменять невалидные символы в именах загружаемых файлов Если флаг Сохранять исходные имена загружаемых файлов включен, то при включении данной опции все небезопасные символы в именах файлов (нелатинские, цифры и некоторые другие) будут заменяться на произвольные латинские.

    Если опция выключена, система не позволит сохранять файлы с небезопасными именами.

    Данная возможность введена для обеспечения кроссплатформенной совместимости. Контролировать загрузку дубликатов файлов Включение контроля загрузки дубликатов. По умолчанию выключено, в новых дистрибутивах включено. Максимальный размер файла для контроля дубликатов (Мб) Установка ограничения на размер файла для контроля. Качество JPG при масштабировании изображений (в процентах) Задается уровень сжатия в процентах для *.JPG файлов при масштабировании. Быстрая отдача файлов через Nginx Задаёт способ отдачи файлов: через Nginx или Apache.

    Файл на скачивание с проверкой прав отдаётся с помощью метода CFile::ViewByUser. Если читать файл на php, то это занимает время на бекенде и существенно зависит от размера файла. При включенной опции метод после проверки прав выставляет заголовок X-Accel-Redirect и прекращает работу. Этот заголовок обрабатывается ngnix, который сам считывает указанный файл с диска, освобождая бекенд. При этом дополнительная настройка ngnix не требуется.

    Изображения в профиле пользователя Максимальная ширина в пикселях Указание максимально возможной ширины изображения. Максимальная высота в пикселях Указание максимально возможной высоты изображения. Максимальный размер файла в байтах Указание максимально возможного размера файла. Эти поля — не ресайз изображения, а проверка на заданные ограничения на загружаемый файл. В случае превышения ограничений файл не будет загружен, выведется соответсвующее уведомление. Оптимизация CSS Объединять CSS файлы Все файлы стилей будут сведены в один файл для выдачи клиенту. Объединять JS файлы Все JS файлы будут сведены в один файл для выдачи клиенту. Подключать минифицированные версии CSS и JS файлов Минифицированная версия файлов имеет суффикс .min в названии: style.min.css и script.min.js. Это касается любых файлов, подключаемых через SetAdditionalCSS и AddHeadScript. Если время изменения исходного файла больше минифицированного, то подключится исходный. Переместить весь Javascript в конец страницы JS скрипты будут загружаться после загрузки кода всей страницы. Опция ускоряет загрузку страницы, но выполнение активных сценариев будет производиться после загрузки страницы. Создавать сжатую копию объединенных CSS и JS файлов Система создаст сжатый файл .gz и отдаст его клиенту. При установке флажка создается сжатый файл, для того чтобы nginx не сжимал файл js и css «на лету», а брал уже готовый файл. Внешние сервисы перевода Ключ сервиса Яндекс.Перевод Для автоматической генерации символьных кодов используется Яндекс.Перевод. Требуется зарегистрироваться на сайте API Яндекса, получить ключ и указать его в настройках модуля. Используемая версия API Яндекс.Перевода — 1.5.

    Если ключ не указан, осуществляется транслитерация. Часовые пояса Локальное время сервера Информация о текущем времени сервера, на котором установлен сайт. Показывает, в каком поясе фактически работает сервер. Для корректной работы системы часовых поясов должна быть правильная комбинация времени и смещения от UTC (18:26:10 +0300). Из продукта время и пояс не настраиваются, они просто должны быть правильными. Если что-то не так, нужно настраивать ОС и/или PHP и БД.

    Доступно для PHP 5.2.0 и выше

    Разрешить использование часовых поясов Разрешение на использование часовых поясов,отличных от Локального времени сервера. При отключенной галочке запросы к БД будут немного короче.

    При включённой опции станут активными

    дополнительные поля.

    Список полей, активных при выборе опции Разрешить использование часовых поясов:

    Поле Описание
    Часовой пояс сервера по умолчанию Выбор часового пояса, который должен использоваться на сайте вместо Локального времени сервера. Поле указывает, в какой/из какого часового пояса будут конвертированы даты по умолчанию. Например, сайт стоит на разделяемом хостинге в США, фактически работает по чикагскому времени. Управлять системным временем на хостинге возможности нет. На сайте — форумы с преимущественно калининградскими посетителями. Необходимо выбрать зону Europe/Kaliningrad — и сообщения форума показываются по калининградскому времени для всех, даже для анонимов. Эта настройка может быть переопределена конкретным пользователем под себя.
    По умолчанию автоматически определять часовой пояс по браузеру Установить эту опцию, если не используются другие способы определения времени клиента. В этом случае время определяется по времени браузера клиента. Опция особенно полезна в корпоративном портале, где часовые пояса имеют большое значение.




    .

    Геолокация Собирать названия местоположений Geonames в локальную БД Система будет вести свою локальную базу местоположений. Данные из этой базы используются:

    • на странице История входов,
    • если выставлена настройка Оповещать пользователей о входе с нового устройства (закладка «Журнал событий»), то в шаблоне письма будет доступен макрос #LOCATION#, куда будет подставляться сохраненное местоположение.
    Сервис рекомендаций Использовать сервис рекомендаций товаров Включает использование сервиса BigData. Карта сайта Тип меню для нулевого уровня карты сайта Название типа меню, пункты которого будут использоваться в качестве вершин карты сайта. Можно указать несколько типов меню через запятую, если предполагается использовать больше 2-х уровней вложенности. Тип меню для остальных уровней карты сайта Название типа меню, пункты которого будут использоваться в качестве ветвей карты сайта. Можно указать несколько типов меню через запятую, если предполагается использовать больше 2-х уровней вложенности. Богатые ссылки Включить богатые ссылки При установке флажка ссылки в публичной части будут отображаться с выводом части информации с указанной страницы. (В Битрикс24 в коробке опция включена по умолчанию.) Сохранять изображения локально При включённой опции первом просмотре богатой ссылки загружается картинка и потом она достаётся из кеша. То есть повторные просмотры — производятся быстрее. Кроме того, некоторые сайты не любят, когда их контент напрямую вставляют в чужие страницы, и отдают access denied вместо изображения. Редактор изображений Разрешить редактирование изображений с внешних сайтов Параметр определяет можно ли открывать в редакторе изображения которые находятся на внешних ресурсах.
    Изначально картинка редактируется на удаленном сервере, просто проксируется поток. Но это все потенциально небезопасно (см. политику CORS). Поэтому пользователь может указать список доверенных ресурсов, с которых можно редактировать. По умолчанию редактировать можно только картинки с текущего хоста. Список разрешенных сайтов С помощью ссылки Добавить сайт указываются сайты (как правило это — CDN) с которых разрешено редактировать изображения. Панель инструментов публичного раздела Всегда показывать панель для пользователей С помощью ссылки Добавить пользователей можно указать для каких групп пользователей, пользователей или структурных подразделений необходимо всегда отображать панель управления (независимо от имеющихся прав доступа). Никогда не показывать панель для пользователей: С помощью ссылки Добавить пользователей можно указать для каких групп пользователей, пользователей или структурных подразделений не нужно отображать панель управления (независимо от имеющихся прав доступа).

    Условия обработки персональных данных

    Сайт использует технические и персональные данные пользователей для получения маркетинговой и статистической информации. Условия обработки персональных данных посетителей можно ознакомиться по ссылке.

    В случае Вашего не согласия с этими условиями — просим Вас покинуть данный сайт. Если Вы продолжаете находиться и использовать сайт — Вы автоматически выражаете свое согласие с условиями обработки персональных данных пользователей сайта

    Понравилась статья? Поделить с друзьями:
  • Black desert online ошибка установки 400
  • Black desert online ошибка 30005
  • Black desert mobile ошибка 401
  • Black desert mobile 101 ошибка
  • Black decker bdv1084 коды ошибок