Полная настройка и оптимизация сервера Fastpanel для 1С Битрикс
- 14 июня, 2024
- 8:46 дп
- Нет комментариев
Содержание
- Если не работает ЧПУ
- PHP value opcache.revalidate_freq = 0
- MySQL value innodb_strict_mode=0
- Настройка прав MySQL SESSION_VARIABLES_ADMIN
Исправить не работающий ЧПУ Битрикса на 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 opcache.revalidate_freq = 0
Для этого в разделе упраления сайтом ПУ открываем настройки PHP
Далее в строке поиска поочередно ищем нужные параметры и выставляем их значения как показано на снимках экрана ниже.
Список необходимых параметров и их значний:
opcache.revalidate_freq = 0
После выставления всех параметров не забываем нажать кнопку “Сохранить” в верхнем правом углу списка, иначе настройки не будут применены.
Данная настройка применяется к конкретной версии 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
Ура! Ошибок нет!