Быстрая установка (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.65. 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 = 100007. 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.010. 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: 32001.12.2020 Свершилось, битрикс перестал поддерживать mbstring.func_overload
Теперь для обновления на версию v20.100.0 требуется удаление опции mbstring.func_overload. Эта опция более не требуется и не поддерживается платформой. ID: 31313.08.2020 Получить id элемента привязки к пользователю битрикс
Получить id элемента, который добавлен в свойство привязки к пользователю битрикс ID: 250Новые статьи в блоге:
06.04.2022 Своё АПИ на сайте битрикс без модуля
Искал куда компонент спрятали и нашёл такую реализацию мини АПИ без модуля. ID: 33318.03.2022 Получение минимальной цены и сохранение в свойство
Пополнение — пример события OnPriceUpdate для получение минимальной цены и сохранения в свойство инфоблока. ID: 33212.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.65. 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 = 100007. 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.010. 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: 32001.12.2020 Свершилось, битрикс перестал поддерживать mbstring.func_overload
Теперь для обновления на версию v20.100.0 требуется удаление опции mbstring.func_overload. Эта опция более не требуется и не поддерживается платформой. ID: 31313.08.2020 Получить id элемента привязки к пользователю битрикс
Получить id элемента, который добавлен в свойство привязки к пользователю битрикс ID: 250Новые статьи в блоге:
06.04.2022 Своё АПИ на сайте битрикс без модуля
Искал куда компонент спрятали и нашёл такую реализацию мини АПИ без модуля. ID: 33318.03.2022 Получение минимальной цены и сохранение в свойство
Пополнение — пример события OnPriceUpdate для получение минимальной цены и сохранения в свойство инфоблока. ID: 33212.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)