Оптимизация FASTPANEL под Битрикс

Приветствую тебя дорогой читатель! Этот пост будет полезен тем, кто собирается размещать на хостинге с панелью управления FASTPANEL сайт Битрикс. В статье я собрал необходимые настройки для корректной работы Битрикса на данной ПУ.

Содержание

  • Выбор версии PHP
  • Если не работает ЧПУ
  • Настройка параметров PHP
  • MySQL value innodb_strict_mode=0
  • Настройка прав MySQL SESSION_VARIABLES_ADMIN
  • Настройка CRON

Выбор версии PHP

Опытным путем выведено, что наиболее выгодно использовать версию PHP 8.1 в режиме FastCGI. В отличиии от версий 8.2 и 8.3 в версии 8.1 сайт работает стабильно и расходует меньше ресурсов сервера.

Исправить не работающий ЧПУ Битрикса на FASTPANEL

Путей решения может быть как минимум два: выбрать интерпритатор PHP FastCGI, или если нужно запустить сайн на PHP-FPM, то нужно добавить строку в конфиг PHP для нужного сайата.

Выбор интерпритатора PHP FastCGI

Для этого открываем страницу сайта в панели управления и выбираем пунт “Настройки”

В меню слева на открывшейся странице выбираем пункт “Обработчик PHP” и выбираем нужный нам обрабтчик и версию PHP.

После этого жмем “Сохранить” и пользуемся сайтом.

Настройка PHP-FPM FASTPANEL для корректной работы ЧПУ Битрикса

По дефолту созданные в FASTPANEL сайты на CMS Bitrix не работают должным образом. Один из проблемных моментов, что в режиме PHP-FPM не работает обработка URL модулем urlrewrite. Путей исправления данной проблемы два: выбрать режим php FastCGI, или добавить в конфиг NGINX дополнительную строку настроек.

if (!-e $request_filename) {
    rewrite ^(.*)$ /bitrix/urlrewrite.php last;
}

Этот фрагмент кода нужно вставить педе первым правилом location. Ниже на снимках экрана показано как найти эту настройку и куда вставить код.

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

Настройка параметров PHP

Для этого в разделе упраления сайтом ПУ открываем настройки PHP

Далее в строке поиска поочередно ищем нужные параметры и выставляем их значения как показано на снимках экрана ниже.

Список необходимых параметров и их значний:

opcache.revalidate_freq = 0
short_open_tag = on

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

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

Настройка MySQL FASTPANEL под Битрикс

Переменная innodb_strict_mode=0

Для нормальной работы битрикса требуется задать значение параметра innodb_strict_mode=0 для этого необходимо открыть “Меню” – “Управление” – “Базы данных”

Дальше в правой верхней части окна рабочей области нажать кнопку “Серверы баз данных”

Далее на списке серверов выбираем сервер localhost и в правой чатси строки в меню выбираем пунт “Настроить переменные”

Далее вставляем в поле поиска строку innodb_strict_mode и дважды кликаем на найденной настроке в списке ниже.

В открыввшемся окне устанавливаем значение 0 или FALSE и жмем кнопку “Сохранить”.

После этого не забываем в писке сверху нажать кнопку “Сохранить”, чтобы изменение настроек применилилсь и сервер MySQL перезапустился.

Права пользователя MySQL

Еще часто после разворачивания копии Битрикс сайта на FASTPANEL может вылезать ошибка.

[Bitrix\Main\DB\SqlQueryException] 
Mysql query error: (1227) Access denied; you need (at least one of) the SYSTEM_VARIABLES_ADMIN or SESSION_VARIABLES_ADMIN privilege(s) for this operation (400)

Для исправления этой ошибки необходимо открыть phpMyAdmin от пользователя ROOT и выполнить SQL запрос

GRANT SESSION_VARIABLES_ADMIN ON *.* TO 'username'@'localhost';

В этом запросе необходимо вместо username вписать имя пользователя БД, от имени которого осуществляется подключение (прописано в файлах dbconn.php и .settings.php).

Где взять пароль root для MySQL?

В FASTPANEL пароль root пользователя хранится в файле /root/.my.cnf и для его просмотра необходимо подключиться к серверу по SSH или открыть терминал в GUI вашего сервера и выполнить команду

sudo cat /root/.my.cnf

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

[client]
user = root
password = ###############

Исправление ошибки MySQL 8 для старых версий битрикса

Могут возникать ситуации, когда устаревшие движки битрикса не заводятся на MySQL 8 версии и выдают ошибку вида:

Server sent charset unknown to the client. Please, report to the developers (400)

В этом случае нужно в файле /etc/mysql/conf.d/mysql.cnf добавить следующий фрагмент кода


[mysql]
default-character-set = utf8

[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8

default_authentication_plugin = mysql_native_password

После сохранения файла необходимо перезапустить службу mysql

service mysql restart

Все, ошибка должна исправиться.

Настройка CRON

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

php -f /var/www/fastuser/data/www/your_site_folder/bitrix/modules/main/tools/cron_events.php

Причем нужно убедиться, что путь к корню сайта /var/www/fastuser/data/www/your_site_folder соответсвует вашим настройкам.

Периодичность запуска настраиваем 1 раз в минуту.

И если нужно задать запуск с версией PHP отличной от версии по умолчанию, нужно указать ее в задании:

/opt/php81/bin/php -f /var/www/fastuser/data/www/your_site_folder/bitrix/modules/main/tools/cron_events.php

в строке /opt/php81/bin/php мы указываем версию нужную нам версию PHP. Так php81 означает, что скрипт будет выполняться на PHP версии 8.1

Проверить правильность строки можно путем вызова этой команды в терминале, подключившись к вашему серверу по SSH. Если все настроено правильно, то сервер отработает задачу и не выведет никаких сообщений, и если в случае появления ошибок они будут выведены на экран в этом же окне терминала. Одна из наиболее распространненных ошибок “PHP Parse error: Unclosed ‘{‘ on line …”, которая вылезать, если не установлена опция PHP short_open_tag = on (как ее установить написано выше в этой же статье).

2 thoughts on “Оптимизация FASTPANEL под Битрикс

  1. Подскажите что это значит, и что нужно подправить? – “Еще один важный момент, если нужно добавить HTTP авторизацию на хосте, то сначала делаем настройку доступа, а потом в конце правим конфиг, иначе HTTP авторизация может срабатывать не всегда.”

    1. Тут речь идет, что если нужно заставить сайт на битриксе работать на PHP в режиме PHP-FPM, то придется добавлять в конфиг ручные правки, и в этом случае может возникать ситуация когда после этой процедуры вдруг захотелось добавить HTTP авторизацию на сайт, чтобы закрыть его от посещения, то ручная правка в конфиге слетает. Поэтому нужно выполнять действия в последовательности:
      1. активируем HTTP авторизацию
      2. вносим ручные корректировки в пользовательский конфиг
      И соответственно, если нужно отменить авторизациюя, порядок действий такой же.

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

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

Посты по теме

CRON для сайта

Как сделать свой сайт быстрее и эффективнее путем настройки фоновых заданий на CRON

Настройка CRON для VtigerCRM

Для того, чтобы правильно работали фоновые задания в CRM системе обязаельно нужно настроить запуск исполняющего файла по CRON. Для этого в VtigerCRM есть специальные файлы для Linux и Windows серверов Все что нужно сделать, это добваить в планировщик CRON на линксовом сервере выполнение задачи ~/cron/vtigercron.sh с интервалом 1 раз в минуту.

Исправление PHP Parse error: Unclosed '{' on line в Битриксе

Иногда в Битриксе может возникать ошибка “PHP Parse error: Unclosed ‘{‘ on line …”. Обычно такую ошибку можно обнаружить после переезда на новый хостинг. Для испраления этой ошибки необходимо установить значение on параметра short_open_tag в настройках PHP. Делается это в панели управления хостингом.

Что делать если Bitrix MySQL использует все ресурсы процессора

Однажды столкнулся с интересной проблемой, MySQL стал пожирать полностью все ресурсы процессора. Причем “захват” ресурсов происходил плавно с выраженными скачками на графике мониторинга Провалы на графике это ручной перезапуск службы MySQL Причина утечки процессорных ресурсов под MySQL В поисках причины были исследованы длинные запросы к БД и перепробваны различные комбинации настроек MySQL, но ничего не […]

Как изменить язык сайта Битрикс для раздела или страницы

Легкий способ локально изменить ящык сайта Bitrix для отдельных страниц или разделов без применения механизма многосайтовости.