Mysql debug sql bitrix как отключить
Перейти к содержимому

Mysql debug sql bitrix как отключить

  • автор:

Быстрая установка (Short install)

Быстрая установка позволяет в упрощенном виде установить продукт «1C-Битрикс». Во время такой установки мастером пропускаются шаги лицензионного соглашения, предварительной проверки хостинга, выбора и настройки базы данных и т.п.

Все необходимые данные для установки содержатся в файлах /bitrix/php_interface/dbconn.php и /bitrix/.settings.php (настройки для нового ядра D7), которые нужно создать и поместить в необходимые директории устанавливаемого дистрибутива.

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

Рассмотрим каждую строку подробнее:

  • SHORT_INSTALL — если указано значение true , то запускается упрощенный мастер установки.
  • SHORT_INSTALL_CHECK — проверка параметров окружения (права доступа к файлам, БД и т.п). Если такой константы нет, проверка будет выполнена на первом хите. После этого в начало dbconn.php запишется define(«SHORT_INSTALL_CHECK», true);
  • MYSQL_TABLE_TYPE — выбор типа таблиц MySQL: MyISAM или InnoDB .
  • BX_UTF — выбор кодировки сайта: true — UTF8, false — CP1251.
  • DBPersistent — если данная константа инициализирована значением true , то будет создаваться постоянное соединение с базой, иначе — обычное.

  • MySQL — адрес и порт сервера базы данных (например, localhost или 192.168.3.155:31007 , если БД находится на другом хосте и на нестандартном порту).
  • MSSQL — строка соединения с сервером (например, для ODBC: DRIVER=SQL Server; SERVER=TESTSQL , для Native: TESTSQL ).
  • Oracle — не используется.
  • MySQL — имя базы (например, sitemanager ).
  • MSSQL — имя базы (например, sitemanager_mssql_odbc )
  • Oracle — строка соединения с базой данных.
    Например:
Пример файла /bitrix/.settings.php
  • utf_mode — отвечает за кодировку сайта, значения value :
    • true — UTF8;
    • false — CP1251.
    • config_options — время жизни кэша настроек сайта в секундах;
    • site_domain — время жизни кэша настроек домена в секундах.

    Таким образом, быстрая установка начнется с Пятого шага мастера установки продукта.

    Mysql debug sql bitrix как отключить

    Опция «Проверка системы» в CMS Битрикс позволяет проверить соответствие настроек хостинга требованиям CMS и вашего сайта. При запуске этой опции на хостинге Timeweb, Битрикс, как правило, приводит несколько ошибок и замечаний. В этой статье мы рассмотрим, как их исправить.

    Отправка почты

    Речь идет о двух параметрах: «Отправка почты» и «Отправка почтового сообщения больше 64Кб».

    Уведомление: Ошибка! Не работает

    Эта ошибка возникает, если вы используете хостинг на тестовом периоде — до оплаты услуги почта недоступна. Как только хостинг будет оплачен, почта заработает.

    Режим работы MySQL

    Уведомление: Ошибка! innodb_strict_mode=ON, требуется OFF. Переменная sql_mode в MySQL должна быть пустая, текущее значение: NO_ENGINE_SUBSTITUTION

    Эта ошибка критична. Она может привести к блокировке запросов к базе данных, что практически означает остановку работы сайта.

    Решение:

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

    В файл /public_html/bitrix/php_interface/after_connect.php под уже имеющимися строками и до символов ?> добавьте:

    В файл /public_html/bitrix/php_interface/after_connect_d7.php под уже имеющимися строками и до символов ?> добавьте:

    После этого проверка Bitrix пройдет успешно.

    Размер стека и pcre.recursion_limit

    Уведомление: Замечание: Возможны проблемы в работе с длинными строками из за системных ограничений

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

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

    Решение:

    • Если у вас тариф мощного хостинга, решением будет переключение сайта на PHP 7.4. Это можно сделать в разделе «Сайты» по нашей инструкции.
    • Если у вас тариф обычного хостинга или если смена версии PHP не помогла, исправить ошибку, добавьте в файл /public_html/.htaccess строки:

    Выполнение агентов на cron

    Уведомление: Замечание: Агенты выполняются на хитах, рекомендуется перенести их выполнение на cron

    Это замечание некритично. В Битрикс предусмотрен внутренний планировщик задач (агентов). Данное замечание влияет на то, насколько точно по времени сработают запланированные задачи. Грубо говоря, скрипты сайта выполняются, только когда его страницы кто-то посещает. Если нет посещений, то и таймер работать не будет. Cron позволяет полностью решить проблему с планированием задач.

    Решение:

    Чтобы перенести работу непериодических агентов (и передачу почты) на Сron, необходимо установить константу BX_CRONTAB_SUPPORT .

    Для этого добавьте в файл /public_html/bitrix/php_interface/dbconn.php строку:

    1. В разделе Crontab нажмите «Добавить новую задачу» и задайте удобное имя для задачи.

    2. В пункте «Исполнитель» выберите «Исполняемый бинарный файл».

    3. В пункте «Путь до файла» укажите команду следующего вида:

    • В /opt/php72/bin/php укажите ту версию php, которую использует сайт. Например, /opt/php74/bin/php ( или /opt/php7.4/bin/php ).
    • Вместо /home/u/user/site.ru/public_html укажите корректный путь до папки сайта и замените u и user на первую букву вашего логина и сам логин.

    4. В пункте «Периодичность» выберите «Каждую минуту».

    Уведомление: Ошибка! Не настроен запуск cron_events.php на cron

    Эта ошибка может возникнуть, если в пункте выше вы только добавили константу, но не добавили задачу cron. Без настройки задачи в crontab будет остановлена часть агентов, в том числе с сайта перестанет отправляться почта. Письма будут накапливаться в очередь и отправляться по частям после устранения ошибки.

    Решение:

    Выполните приведенную выше инструкцию по добавлению задачи cron, и ошибка будет устранена.

    Обязательные параметры PHP

    Уведомление: Ошибка! Значение max_input_vars должно быть не ниже 10000

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

    Типовые битрикс ошибки

    1.Duplicate entry ‘H1vyYZlZDAeRMeZJ76uKHWozRqctgvK1’ for key ‘PRIMARY’
    Нужно снести содержимое базы и заново попытаться восстанавливать сайт из резервной копии, также нужно посмотреть включено ли хранение сессий в отдельной базе данных в настройках расширенного режима безопасности группы администратор, отключить такую настройку.

    2. Превышен лимит на размер базы данных
    На виртуальном хостинге есть ограничения размеров базы данных. Если размер базы превысит лимит, вам начнут высылаться уведомления. При превышении максимального размера высылается предупреждение с последующей блокировкой до момента устранения проблемы. В этом случае нужно или повысить тариф, или смотреть содержимое базы. В моем случае таблицы b_event_log — много места занимала, b_event — очень много было, b_captcha — также много было. Нужно войти в Phpmyadmin и в базе очистить указанные таблицы.

    3. Allowed memory size of
    Откройте файл php.ini и найдите там строку: memory_limit = 256M, увеличьте значение (для тарифов виртуального хостинга есть ограничения)

    4. Cannot use BitrixMainTextString as String because ‘String’
    нет обновлений битрикс для используемой версии РНР, обычно проблема возникает при восстановлении сайта на другом хостинге. Пробуйте начать с версии РНР 5.6

    5. DB query error. Please try later
    Обычно ошибка доступа к базе данных
    1) Открой файл /bitrix/php_interface/dbconn.php и вставь в самый низ файла строку $DBDebug=true;

    6. max_input_vars
    В файле .htaccess задайте php_value max_input_vars 10000, но не всегда помогает для изменения данной директивы необходимо отредактировать файл php.ini: max_input_vars = 10000

    7. Maximum execution time of 60 seconds exceeded
    Могут помочь такие варианты:
    1) после внесения изменений в php.ini требуется рестарт apache.
    2) если определена переменная set_time_limit в файле /bitrix/php_interface/dbconn.php то она имеет приоритет по сравнению с тем что хранится в php.ini в max_execution_time
    3) ошибка может возникать из-за нехватки значения параметра memory_limit(также определяется в этих файлах)

    8. MySQL server has gone away
    В процессе выполнения запроса сервер оборвал соединение. Проблема связана с настройкой MySQL и часто возникает когда на сервере установлен небольшой лимит времени на соединение.
    Установите в bitrix/php_interface/after_connect.php:
    $DB->Query(«SET wait_timeout=28800»);

    9. opcache.revalidate_freq для битрикс
    Мне помогает связка в файле .htaccess, особенно на тарифе host-0 reg.ru, который не сильно подходит для битрикс тарифа:
    php_value opcache.revalidate_freq 0
    php_value max_input_vars 10000
    php_value default_socket_timeout 60
    Также помогает переход на РНР 7.0

    10. Query Error SET LOCAL time_zone
    на виртуалке битрикс
    $DB->Query(«SET LOCAL time_zone=’».date(‘P’).»‘»);

    11. Кодировка таблицы (cp1251) отличается от кодировки базы (utf8)
    Для той таблицы на которую указывает ошибка потребуется выполнить ряд SQL запросов в базе данных:
    ALTER TABLE имя_таблицы CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ciДля смены кодировки таблиц выполните, пожалуйста, запрос для каждой таблицы:
    ALTER TABLE имя_таблицы CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

    12. Ошибка больших файлов импорта
    Потребуется увеличить лимиты размера файлов в файле php.ini.

    13. Ошибка! Структура базы данных имеет ошибки- поля отличаются
    Смотрим название таблиц в логах
    Перейдите, пожалуйста, в sql-строку (Настройки > Инструменты > SQL запрос) и там выполните запрос:
    ALTER TABLE `b_ticket` MODIFY `TITLE` varchar(255) NOT NULL ;
    ALTER TABLE `b_ticket` MODIFY `OWNER_SID` varchar(255) NULL DEFAULT NULL ;
    ALTER TABLE `b_ticket` MODIFY `LAST_MESSAGE_SID` varchar(255) NULL DEFAULT NULL ;
    ALTER TABLE `b_ticket` MODIFY `SUPPORT_COMMENTS` varchar(255) NULL DEFAULT NULL ;

    После этого переустановите (удалить и снова установить) модуль поиска без сохранения
    таблиц (Настройки-Настройки продукта-Модули).

    Затем нужно выполнить полную переиндексацию. Для этого в административной части сайта перейдите,
    пожалуйста, в «Настройки > Поиск > Переиндексация». Снимите галочку «Переиндексировать только измененные»,
    установите шаг, например, 10 секунд и нажмите кнопку «Переиндексировать».

    Ещё статьи:

    20.09.2021 Разговор с рекрутером в 2021. Мидл это младший специалист и на удалёнку не ниже сеньёра
    Рекрутер: В принципе ок, но обычно младших специалистов мы в офис берем). Что скажете?
    П.С. Мда, интересно оказывается, что мидл это младший специалист. ID: 320

    01.12.2020 Свершилось, битрикс перестал поддерживать mbstring.func_overload
    Теперь для обновления на версию v20.100.0 требуется удаление опции mbstring.func_overload. Эта опция более не требуется и не поддерживается платформой. ID: 313

    13.08.2020 Получить id элемента привязки к пользователю битрикс
    Получить id элемента, который добавлен в свойство привязки к пользователю битрикс ID: 250

    Новые статьи в блоге:

    06.04.2022 Своё АПИ на сайте битрикс без модуля
    Искал куда компонент спрятали и нашёл такую реализацию мини АПИ без модуля. ID: 333

    18.03.2022 Получение минимальной цены и сохранение в свойство
    Пополнение — пример события OnPriceUpdate для получение минимальной цены и сохранения в свойство инфоблока. ID: 332

    12.02.2022 Проверка групп пользователя и исключение разделов
    Пример события для проверки групп пользователя с целью исключить разделы из общего доступа ID: 331

    Настройка параметров mysql для битрикс

    Универсальная галерея - модуль для битрикс

    Производительность базы данных — одна из наиболее важных составных частей общей производительности проекта на 1С-Битрикс. С помощью настройки параметров базы данных можно иногда получить немалый прирост скорости загрузки страниц сайта, которая, как показывает практика, очень сильно влияет на общее впечатление о сайте и его конверсию. Многие посетители вообще не дожидаются загрузки страницы, если она грузится слишком долго, и раньше закрывают вкладку браузера или возвращаются на предыдущую страницу.
    [spoiler]
    Установка типа таблиц

    Для начала необходимо убедиться, что таблицы mysql имеют тип InnoDB, а не MyISAM. Для этого можно перейти в административной панели битрикс на страницу Настройки > Инструменты > SQL запрос и ввести команду SHOW TABLE STATUS (тип таблиц будет отображаться во втором столбце):

    Если таблицы имеют тип MyISAM, то их можно сконвертировать в InnoDB либо при помощи команды ALTER TABLE <ИМЯ ТАБЛИЦЫ>, type=InnoDB, либо перейти Настройки > Производительность > Таблицы, выбрать внизу страницы «Для всех», и выбрать в выпадающем списке «Преобразовать в InnoDB»:

    Как устанавливать параметры Mysql

    Смотрим файл /etc/init.d/mysql и находим параметр CONF — в нем находится путь к файлу конфигурации mysql (обычно это /etc/mysql/my.cnf).

    Собственно параметры mysql можно устанавливать не в любом месте файла my.cnf, а только после директивы [mysqld].

    Чтобы параметры вступили в силу, нужно перезапустить сервер mysql. Сделать это можно при помощи команды /etc/init.d/mysql restart (Debian, Ubuntu) или /etc/init.d/mysqld restart (Fedora, Cent OS).

    Посмотреть текущие параметры всегда можно при помощи команды mysqladmin variables -pPASSWORD, где PASSWORD — root пароль для mysql.

    Наиболее важные параметры

    Перечислю наиболее важные параметры, значения которых желательно установить

    Параметры для типа таблиц InnoDB

    Параметры для типа таблиц MyISAM

    Какие значения данных параметров устанавливать — отчасти ответить на этот вопрос поможет также модуль «Монитор производительности» (Настройки > Производительность > Сервер БД), отчасти — эксперимент и опыт.

    Специальные переменные

    Ведение подобного лога может серьезно замедлить работу сайта, поэтому пользоваться этим стоит кратковременно.

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

    Данная переменная позволяет быстро найти ту или иную языковую фразу.

    KEY — лицензионный ключ хранимый в файле /bitrix/license_key.php

    KEY — лицензионный ключ хранимый в файле /bitrix/license_key.php

      (глобальная) — переменная автоматически создаётся в служебной части пролога
    • С (соединение с базой) — переменную можно определить только в файле хранящим параметры соединения к базе: /bitrix/php_interface/dbconn.php
    • И (инициализация) — переменную можно определить в одном из следующих файлов:
      • /bitrix/php_interface/init.php — дополнительные параметры портала
      • /bitrix/php_interface/ID сайта/init.php — дополнительные параметры сайта
      Пользовательские комментарии

      Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

      Для этого нужно всего лишь авторизоваться на сайте

      Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

      Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

      При установке $DBDebugToFile = true;

      Сайт падает с ошибкой:

      Return value of Bitrix\Main\Session\KernelSession::getId() must be of the type string, null returned (0)

      Mysql debug sql bitrix как отключить

      Ведение подобного лога может серьезно замедлить работу сайта, поэтому пользоваться этим стоит кратковременно.

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

      Данная переменная позволяет быстро найти ту или иную языковую фразу.

      KEY — лицензионный ключ хранимый в файле /bitrix/license_key.php

      KEY — лицензионный ключ хранимый в файле /bitrix/license_key.php

        (глобальная) — переменная автоматически создаётся в служебной части пролога
      • С (соединение с базой) — переменную можно определить только в файле хранящим параметры соединения к базе: /bitrix/php_interface/dbconn.php
      • И (инициализация) — переменную можно определить в одном из следующих файлов:
        • /bitrix/php_interface/init.php — дополнительные параметры портала
        • /bitrix/php_interface/ID сайта/init.php — дополнительные параметры сайта
        Пользовательские комментарии

        Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

        Для этого нужно всего лишь авторизоваться на сайте

        Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

        Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

        При установке $DBDebugToFile = true;

        Сайт падает с ошибкой:

        Return value of Bitrix\Main\Session\KernelSession::getId() must be of the type string, null returned (0)

        Возможности отладки в Битрикс D7

        В ядре D7 появились относительно удобные встроенные возможности диагностики выполнения кода. Они представлены в пространстве имён Bitrix\Main\Diag, в дальнейших примерах используется сокращение:

        Отладка SQL-запросов

        В ядре D7 для отслеживания SQL-запросов используется так называемый SQL-трекер. При использовании трекера при каждом запросе к БД (метод Bitrix\Main\DB\Connection::queryInternal) в трекер записывается запрос и время начала и окончания. Трекер является объектом класса Diag\SqlTracker.

        Для получения трекера и включения отслеживания нужно получить объект текущего соединения и вызвать метод startTracker:

        После вызова startTracker до вызова stopTracker все запросы будут отслеживаться. Каждый запрос представлен объектом класса Bitrix\Main\Diag\SqlTrackerQuery, коллекцию которых можно получить вызвав метод Diag\SqlTracker::getQueries

        Для того, чтобы очистить данные в трекере и начать новое отслеживание, нужно вызвать startTracker с аргументом $reset = true:

        Пример отслеживания запросов при получении элементов инфоблока:

        Следует учесть, что этот трекер не отслеживает запросы, сделанные через старое ядро.

        Вывод содержимого переменной на экран

        Diag\Debug::dump позволяет вывести содержимое переменной в читаемом виде, фактически это надстройка для var_dump:

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

        Если третий аргумент установлен в true, то метод вернет содержимое переменной вместо вывода на экран.

        Дамп содержимого переменной в файл

        Данные функции позволяют записать содержимое переменной в лог-файл. Путь к файлу относительно коря сайта передается третим аргументом $fileName, по-умолчанию методы пишут в файл /__bx_log.log.

        dumpToFile пишет в файл результат работы метода Debug::dump, т.е. в формате функции var_dump. writeToFile же пишет либо просто значение переменной, либо результат функции print_r, если переменная является массивом.

        Замер времени выполнения кода

        Если нужно замерить время выполнения некоторого куска кода, можно воспользоваться таким встроенным решением:

        start — время(unix timestamp с микросекундами) первого вызова startTimeLabel.

        time — время между startTimeLabel и endTimeLabel в секундах. Если было несколько замеров с одним названием (в примере – "label1"), то время суммируется.

        Бонус

        Также есть два полезных метода для диагностики в классе Bitrix\Main\Diag\Helper:

        Diag\Helper::getCurrentMicrotime() возвращает текущую метку времени с микросекундами.

        Diag\Helper::getBackTrace() возвращает стек вызовов функций.

        Mysql debug sql bitrix как отключить

        Опция «Проверка системы» в CMS Битрикс позволяет проверить соответствие настроек хостинга требованиям CMS и вашего сайта. При запуске этой опции на хостинге Timeweb, Битрикс, как правило, приводит несколько ошибок и замечаний. В этой статье мы рассмотрим, как их исправить.

        Отправка почты

        Речь идет о двух параметрах: «Отправка почты» и «Отправка почтового сообщения больше 64Кб».

        Уведомление: Ошибка! Не работает

        Эта ошибка возникает, если вы используете хостинг на тестовом периоде — до оплаты услуги почта недоступна. Как только хостинг будет оплачен, почта заработает.

        Режим работы MySQL

        Уведомление: Ошибка! innodb_strict_mode=ON, требуется OFF. Переменная sql_mode в MySQL должна быть пустая, текущее значение: NO_ENGINE_SUBSTITUTION

        Эта ошибка критична. Она может привести к блокировке запросов к базе данных, что практически означает остановку работы сайта.

        Решение:

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

        В файл /public_html/bitrix/php_interface/after_connect.php под уже имеющимися строками и до символов ?> добавьте:

        В файл /public_html/bitrix/php_interface/after_connect_d7.php под уже имеющимися строками и до символов ?> добавьте:

        После этого проверка Bitrix пройдет успешно.

        Размер стека и pcre.recursion_limit

        Уведомление: Замечание: Возможны проблемы в работе с длинными строками из за системных ограничений

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

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

        Решение:

        • Если у вас тариф мощного хостинга, решением будет переключение сайта на PHP 7.4. Это можно сделать в разделе «Сайты» по нашей инструкции.
        • Если у вас тариф обычного хостинга или если смена версии PHP не помогла, исправить ошибку, добавьте в файл /public_html/.htaccess строки:

        Выполнение агентов на cron

        Уведомление: Замечание: Агенты выполняются на хитах, рекомендуется перенести их выполнение на cron

        Это замечание некритично. В Битрикс предусмотрен внутренний планировщик задач (агентов). Данное замечание влияет на то, насколько точно по времени сработают запланированные задачи. Грубо говоря, скрипты сайта выполняются, только когда его страницы кто-то посещает. Если нет посещений, то и таймер работать не будет. Cron позволяет полностью решить проблему с планированием задач.

        Решение:

        Чтобы перенести работу непериодических агентов (и передачу почты) на Сron, необходимо установить константу BX_CRONTAB_SUPPORT .

        Для этого добавьте в файл /public_html/bitrix/php_interface/dbconn.php строку:

        1. В разделе Crontab нажмите «Добавить новую задачу» и задайте удобное имя для задачи.

        2. В пункте «Исполнитель» выберите «Исполняемый бинарный файл».

        3. В пункте «Путь до файла» укажите команду следующего вида:

        • В /opt/php72/bin/php укажите ту версию php, которую использует сайт. Например, /opt/php74/bin/php ( или /opt/php7.4/bin/php ).
        • Вместо /home/u/user/site.ru/public_html укажите корректный путь до папки сайта и замените u и user на первую букву вашего логина и сам логин.

        4. В пункте «Периодичность» выберите «Каждую минуту».

        Уведомление: Ошибка! Не настроен запуск cron_events.php на cron

        Эта ошибка может возникнуть, если в пункте выше вы только добавили константу, но не добавили задачу cron. Без настройки задачи в crontab будет остановлена часть агентов, в том числе с сайта перестанет отправляться почта. Письма будут накапливаться в очередь и отправляться по частям после устранения ошибки.

        Решение:

        Выполните приведенную выше инструкцию по добавлению задачи cron, и ошибка будет устранена.

        Обязательные параметры PHP

        Уведомление: Ошибка! Значение max_input_vars должно быть не ниже 10000

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

        Типовые битрикс ошибки

        1.Duplicate entry ‘H1vyYZlZDAeRMeZJ76uKHWozRqctgvK1’ for key ‘PRIMARY’
        Нужно снести содержимое базы и заново попытаться восстанавливать сайт из резервной копии, также нужно посмотреть включено ли хранение сессий в отдельной базе данных в настройках расширенного режима безопасности группы администратор, отключить такую настройку.

        2. Превышен лимит на размер базы данных
        На виртуальном хостинге есть ограничения размеров базы данных. Если размер базы превысит лимит, вам начнут высылаться уведомления. При превышении максимального размера высылается предупреждение с последующей блокировкой до момента устранения проблемы. В этом случае нужно или повысить тариф, или смотреть содержимое базы. В моем случае таблицы b_event_log — много места занимала, b_event — очень много было, b_captcha — также много было. Нужно войти в Phpmyadmin и в базе очистить указанные таблицы.

        3. Allowed memory size of
        Откройте файл php.ini и найдите там строку: memory_limit = 256M, увеличьте значение (для тарифов виртуального хостинга есть ограничения)

        4. Cannot use BitrixMainTextString as String because ‘String’
        нет обновлений битрикс для используемой версии РНР, обычно проблема возникает при восстановлении сайта на другом хостинге. Пробуйте начать с версии РНР 5.6

        5. DB query error. Please try later
        Обычно ошибка доступа к базе данных
        1) Открой файл /bitrix/php_interface/dbconn.php и вставь в самый низ файла строку $DBDebug=true;

        6. max_input_vars
        В файле .htaccess задайте php_value max_input_vars 10000, но не всегда помогает для изменения данной директивы необходимо отредактировать файл php.ini: max_input_vars = 10000

        7. Maximum execution time of 60 seconds exceeded
        Могут помочь такие варианты:
        1) после внесения изменений в php.ini требуется рестарт apache.
        2) если определена переменная set_time_limit в файле /bitrix/php_interface/dbconn.php то она имеет приоритет по сравнению с тем что хранится в php.ini в max_execution_time
        3) ошибка может возникать из-за нехватки значения параметра memory_limit(также определяется в этих файлах)

        8. MySQL server has gone away
        В процессе выполнения запроса сервер оборвал соединение. Проблема связана с настройкой MySQL и часто возникает когда на сервере установлен небольшой лимит времени на соединение.
        Установите в bitrix/php_interface/after_connect.php:
        $DB->Query(«SET wait_timeout=28800»);

        9. opcache.revalidate_freq для битрикс
        Мне помогает связка в файле .htaccess, особенно на тарифе host-0 reg.ru, который не сильно подходит для битрикс тарифа:
        php_value opcache.revalidate_freq 0
        php_value max_input_vars 10000
        php_value default_socket_timeout 60
        Также помогает переход на РНР 7.0

        10. Query Error SET LOCAL time_zone
        на виртуалке битрикс
        $DB->Query(«SET LOCAL time_zone=’».date(‘P’).»‘»);

        11. Кодировка таблицы (cp1251) отличается от кодировки базы (utf8)
        Для той таблицы на которую указывает ошибка потребуется выполнить ряд SQL запросов в базе данных:
        ALTER TABLE имя_таблицы CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ciДля смены кодировки таблиц выполните, пожалуйста, запрос для каждой таблицы:
        ALTER TABLE имя_таблицы CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

        12. Ошибка больших файлов импорта
        Потребуется увеличить лимиты размера файлов в файле php.ini.

        13. Ошибка! Структура базы данных имеет ошибки- поля отличаются
        Смотрим название таблиц в логах
        Перейдите, пожалуйста, в sql-строку (Настройки > Инструменты > SQL запрос) и там выполните запрос:
        ALTER TABLE `b_ticket` MODIFY `TITLE` varchar(255) NOT NULL ;
        ALTER TABLE `b_ticket` MODIFY `OWNER_SID` varchar(255) NULL DEFAULT NULL ;
        ALTER TABLE `b_ticket` MODIFY `LAST_MESSAGE_SID` varchar(255) NULL DEFAULT NULL ;
        ALTER TABLE `b_ticket` MODIFY `SUPPORT_COMMENTS` varchar(255) NULL DEFAULT NULL ;

        После этого переустановите (удалить и снова установить) модуль поиска без сохранения
        таблиц (Настройки-Настройки продукта-Модули).

        Затем нужно выполнить полную переиндексацию. Для этого в административной части сайта перейдите,
        пожалуйста, в «Настройки > Поиск > Переиндексация». Снимите галочку «Переиндексировать только измененные»,
        установите шаг, например, 10 секунд и нажмите кнопку «Переиндексировать».

        Ещё статьи:

        20.09.2021 Разговор с рекрутером в 2021. Мидл это младший специалист и на удалёнку не ниже сеньёра
        Рекрутер: В принципе ок, но обычно младших специалистов мы в офис берем). Что скажете?
        П.С. Мда, интересно оказывается, что мидл это младший специалист. ID: 320

        01.12.2020 Свершилось, битрикс перестал поддерживать mbstring.func_overload
        Теперь для обновления на версию v20.100.0 требуется удаление опции mbstring.func_overload. Эта опция более не требуется и не поддерживается платформой. ID: 313

        13.08.2020 Получить id элемента привязки к пользователю битрикс
        Получить id элемента, который добавлен в свойство привязки к пользователю битрикс ID: 250

        Новые статьи в блоге:

        06.04.2022 Своё АПИ на сайте битрикс без модуля
        Искал куда компонент спрятали и нашёл такую реализацию мини АПИ без модуля. ID: 333

        18.03.2022 Получение минимальной цены и сохранение в свойство
        Пополнение — пример события OnPriceUpdate для получение минимальной цены и сохранения в свойство инфоблока. ID: 332

        12.02.2022 Проверка групп пользователя и исключение разделов
        Пример события для проверки групп пользователя с целью исключить разделы из общего доступа ID: 331

        Настройка параметров mysql для битрикс

        Универсальная галерея - модуль для битрикс

        Производительность базы данных — одна из наиболее важных составных частей общей производительности проекта на 1С-Битрикс. С помощью настройки параметров базы данных можно иногда получить немалый прирост скорости загрузки страниц сайта, которая, как показывает практика, очень сильно влияет на общее впечатление о сайте и его конверсию. Многие посетители вообще не дожидаются загрузки страницы, если она грузится слишком долго, и раньше закрывают вкладку браузера или возвращаются на предыдущую страницу.
        [spoiler]
        Установка типа таблиц

        Для начала необходимо убедиться, что таблицы mysql имеют тип InnoDB, а не MyISAM. Для этого можно перейти в административной панели битрикс на страницу Настройки > Инструменты > SQL запрос и ввести команду SHOW TABLE STATUS (тип таблиц будет отображаться во втором столбце):

        Если таблицы имеют тип MyISAM, то их можно сконвертировать в InnoDB либо при помощи команды ALTER TABLE <ИМЯ ТАБЛИЦЫ>, type=InnoDB, либо перейти Настройки > Производительность > Таблицы, выбрать внизу страницы «Для всех», и выбрать в выпадающем списке «Преобразовать в InnoDB»:

        Как устанавливать параметры Mysql

        Смотрим файл /etc/init.d/mysql и находим параметр CONF — в нем находится путь к файлу конфигурации mysql (обычно это /etc/mysql/my.cnf).

        Собственно параметры mysql можно устанавливать не в любом месте файла my.cnf, а только после директивы [mysqld].

        Чтобы параметры вступили в силу, нужно перезапустить сервер mysql. Сделать это можно при помощи команды /etc/init.d/mysql restart (Debian, Ubuntu) или /etc/init.d/mysqld restart (Fedora, Cent OS).

        Посмотреть текущие параметры всегда можно при помощи команды mysqladmin variables -pPASSWORD, где PASSWORD — root пароль для mysql.

        Наиболее важные параметры

        Перечислю наиболее важные параметры, значения которых желательно установить

        Параметры для типа таблиц InnoDB

        Параметры для типа таблиц MyISAM

        Какие значения данных параметров устанавливать — отчасти ответить на этот вопрос поможет также модуль «Монитор производительности» (Настройки > Производительность > Сервер БД), отчасти — эксперимент и опыт.

        Mysql debug sql bitrix как отключить

        Ведение подобного лога может серьезно замедлить работу сайта, поэтому пользоваться этим стоит кратковременно.

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

        Данная переменная позволяет быстро найти ту или иную языковую фразу.

        KEY — лицензионный ключ хранимый в файле /bitrix/license_key.php

        KEY — лицензионный ключ хранимый в файле /bitrix/license_key.php

          (глобальная) — переменная автоматически создаётся в служебной части пролога
        • С (соединение с базой) — переменную можно определить только в файле хранящим параметры соединения к базе: /bitrix/php_interface/dbconn.php
        • И (инициализация) — переменную можно определить в одном из следующих файлов:
          • /bitrix/php_interface/init.php — дополнительные параметры портала
          • /bitrix/php_interface/ID сайта/init.php — дополнительные параметры сайта
          Пользовательские комментарии

          Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

          Для этого нужно всего лишь авторизоваться на сайте

          Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

          Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

          При установке $DBDebugToFile = true;

          Сайт падает с ошибкой:

          Return value of Bitrix\Main\Session\KernelSession::getId() must be of the type string, null returned (0)

          Возможности отладки в Битрикс D7

          В ядре D7 появились относительно удобные встроенные возможности диагностики выполнения кода. Они представлены в пространстве имён Bitrix\Main\Diag, в дальнейших примерах используется сокращение:

          Отладка SQL-запросов

          В ядре D7 для отслеживания SQL-запросов используется так называемый SQL-трекер. При использовании трекера при каждом запросе к БД (метод Bitrix\Main\DB\Connection::queryInternal) в трекер записывается запрос и время начала и окончания. Трекер является объектом класса Diag\SqlTracker.

          Для получения трекера и включения отслеживания нужно получить объект текущего соединения и вызвать метод startTracker:

          После вызова startTracker до вызова stopTracker все запросы будут отслеживаться. Каждый запрос представлен объектом класса Bitrix\Main\Diag\SqlTrackerQuery, коллекцию которых можно получить вызвав метод Diag\SqlTracker::getQueries

          Для того, чтобы очистить данные в трекере и начать новое отслеживание, нужно вызвать startTracker с аргументом $reset = true:

          Пример отслеживания запросов при получении элементов инфоблока:

          Следует учесть, что этот трекер не отслеживает запросы, сделанные через старое ядро.

          Вывод содержимого переменной на экран

          Diag\Debug::dump позволяет вывести содержимое переменной в читаемом виде, фактически это надстройка для var_dump:

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

          Если третий аргумент установлен в true, то метод вернет содержимое переменной вместо вывода на экран.

          Дамп содержимого переменной в файл

          Данные функции позволяют записать содержимое переменной в лог-файл. Путь к файлу относительно коря сайта передается третим аргументом $fileName, по-умолчанию методы пишут в файл /__bx_log.log.

          dumpToFile пишет в файл результат работы метода Debug::dump, т.е. в формате функции var_dump. writeToFile же пишет либо просто значение переменной, либо результат функции print_r, если переменная является массивом.

          Замер времени выполнения кода

          Если нужно замерить время выполнения некоторого куска кода, можно воспользоваться таким встроенным решением:

          start — время(unix timestamp с микросекундами) первого вызова startTimeLabel.

          time — время между startTimeLabel и endTimeLabel в секундах. Если было несколько замеров с одним названием (в примере – "label1"), то время суммируется.

          Бонус

          Также есть два полезных метода для диагностики в классе Bitrix\Main\Diag\Helper:

          Diag\Helper::getCurrentMicrotime() возвращает текущую метку времени с микросекундами.

          Diag\Helper::getBackTrace() возвращает стек вызовов функций.

          Быстрая установка (Short install)

          Быстрая установка позволяет в упрощенном виде установить продукт «1C-Битрикс». Во время такой установки мастером пропускаются шаги лицензионного соглашения, предварительной проверки хостинга, выбора и настройки базы данных и т.п.

          Все необходимые данные для установки содержатся в файлах /bitrix/php_interface/dbconn.php и /bitrix/.settings.php (настройки для нового ядра D7), которые нужно создать и поместить в необходимые директории устанавливаемого дистрибутива.

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

          Рассмотрим каждую строку подробнее:

          • SHORT_INSTALL — если указано значение true , то запускается упрощенный мастер установки.
          • SHORT_INSTALL_CHECK — проверка параметров окружения (права доступа к файлам, БД и т.п). Если такой константы нет, проверка будет выполнена на первом хите. После этого в начало dbconn.php запишется define(«SHORT_INSTALL_CHECK», true);
          • MYSQL_TABLE_TYPE — выбор типа таблиц MySQL: MyISAM или InnoDB .
          • BX_UTF — выбор кодировки сайта: true — UTF8, false — CP1251.
          • DBPersistent — если данная константа инициализирована значением true , то будет создаваться постоянное соединение с базой, иначе — обычное.

          • MySQL — адрес и порт сервера базы данных (например, localhost или 192.168.3.155:31007 , если БД находится на другом хосте и на нестандартном порту).
          • MSSQL — строка соединения с сервером (например, для ODBC: DRIVER=SQL Server; SERVER=TESTSQL , для Native: TESTSQL ).
          • Oracle — не используется.
          • MySQL — имя базы (например, sitemanager ).
          • MSSQL — имя базы (например, sitemanager_mssql_odbc )
          • Oracle — строка соединения с базой данных.
            Например:
          Пример файла /bitrix/.settings.php
          • utf_mode — отвечает за кодировку сайта, значения value :
            • true — UTF8;
            • false — CP1251.
            • config_options — время жизни кэша настроек сайта в секундах;
            • site_domain — время жизни кэша настроек домена в секундах.

            Таким образом, быстрая установка начнется с Пятого шага мастера установки продукта.

            Специальные переменные

            Ведение подобного лога может серьезно замедлить работу сайта, поэтому пользоваться этим стоит кратковременно.

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

            Данная переменная позволяет быстро найти ту или иную языковую фразу.

            KEY — лицензионный ключ хранимый в файле /bitrix/license_key.php

            KEY — лицензионный ключ хранимый в файле /bitrix/license_key.php

              (глобальная) — переменная автоматически создаётся в служебной части пролога
            • С (соединение с базой) — переменную можно определить только в файле хранящим параметры соединения к базе: /bitrix/php_interface/dbconn.php
            • И (инициализация) — переменную можно определить в одном из следующих файлов:
              • /bitrix/php_interface/init.php — дополнительные параметры портала
              • /bitrix/php_interface/ID сайта/init.php — дополнительные параметры сайта
              Пользовательские комментарии

              Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

              Для этого нужно всего лишь авторизоваться на сайте

              Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

              Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

              При установке $DBDebugToFile = true;

              Сайт падает с ошибкой:

              Return value of Bitrix\Main\Session\KernelSession::getId() must be of the type string, null returned (0)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *