Возможности
- быстрая установка на чистую ОС Debian 12
- удобная и интуитивно понятная панель ISPConfig
- возможность настройки трассировки медленных запросов (php-fpm)
- почта работает «из коробки», Google Mail, Яндекс Почта, mail.ru получают письма без пометки Спам
- создание нескольких сайтов на одном сервере
- разделение пользователей
- автоматизация получения сертификатов для доменов
- поддержка нескольких версий php на одном сервере для разных сайтов
- улучшенная безопасность. Если злоумышленник взломает один из сайтов, он не сможет получить доступ к сайтам других пользователей.
Установка Ispconfig
cd /root/
wget https://raw.githubusercontent.com/Wladimir-N/ispconfig/debian12/ispconfig-debian12.sh
chmod +x ispconfig-debian12.sh
./ispconfig-debian12.sh
- запускать скрипт под рутом
- ставить на чистую систему!
- именно классическая авторизация под root либо
su -
либоsudo -i
- директория /root/ispconfig системная и используется при установке, соответственно до запуска скрипта установки не должна существовать т.е. такой вариант установки если находимся в /root/ некорректен — git clone https://github.com/Wladimir-N/ispconfig.git && cd ./ispconfig && …
- логи установки смотрим в /root/ISPConfig.log
- креды для доступа в ISPConfig смотреть в /root/.ispconfig.ini — первая строчка admin и пароль соответственно
- root пароль MySQL — вторая строчка в /root/.ispconfig.ini
Настройка
- для работы в ISPConfig используется порт 81
- для посещаемых сайтов можно увеличить количество php воркеров (опция PHP-FPM pm.max_children)
Настройка сайта на движке Битрикс
- заходим в панель, создаём сайт и в закладке Options копируем из файла https://github.com/Wladimir-N/ispconfig/blob/debian12/Bitrix настройки PHP (опция Custom php.ini settings) и nginx (опция nginx Directives)
Настройка MySQL
- если железо одинаковое и сайт преезжает с BitrixVM для начала можно скопировать файл bvat.cnf с BitrixVM в каталог /etc/mysql/mariadb.conf.d/, но переименовать, например, в 90-my.cnf
- после суток работы установить запустить Mysql тюнер и поправить настройки согласно рекомендациям
apt install mysqltuner
mysqltuner
Установка и настройка необходимых модулей
- по необходимости доставим в систему утилиты и модули (к примеру)
apt install mc
apt install php8.2-memcache
правки можно вносить в конец файла /etc/mysql/mariadb.conf.d/51-server.cnf
- установка sphinxsearch
-
sudo apt-get install sphinxsearch
берём конфиг sphinx из админки битрикса, удаляем строчку infix_fields= этот конфиг добавляем к дефолтному /etc/sphinxsearch/ правим /etc/default/sphinxsearch на предмет set START=yes
sudo service sphinxsearch start
- установка composer
apt install --no-install-recommends composer
Настройка логирования трассировок медленных запросов
Для настройки логирования трассировок медленных запросов читаем php-slow-log.txt
Смена версии PHP
Для установки доп.версий PHP используем скрипт https://raw.githubusercontent.com/Wladimir-N/ispconfig/debian12/autoinstall.sh по результату добавления нужной PHP версии в консоль выведет параметры которые прописываем в ISPConfig — Setting — Additional PHP Versions далее в настройках сайта выбираем эту версию
Почта
Используется почтовый сервер postfix Почта работает «из коробки», Google Mail, Яндекс Почта, mail.ru получают письма без пометки Спам. Очередь сообщений можно глянуть в ISPConfig — Monitor — Mail Queue Там же рядом логи ISPConfig — Monitor — Mail log
Настройка сайтов для работы с одним ядром Bitrix
работаем root пользователем: у пользователя под которым работает второй сайт в /etc/passwd меняем id пользователя и группы на те-же, что у первого сайта например, было web1:x:5004:5005:…. web2:x:5005:5005:…. меняем web2:x:5005:5005:…. -> web2:x:5004:5005:….
переходим в домашнюю папку пользователя web2 — меняем владельца
cd /var/www/clients/client0/web2
find . -user 5005 -exec chown 5004:5005 {} +
логинимся вторым пользователем
su - web2 -s /bin/bash
создаем симлинки на папки /upload/ и /bitrix/
cd /var/www/clients/client0/web2/web
ln -s /var/www/clients/client0/web1/web/upload .
ln -s /var/www/clients/client0/web1/web/bitrix .
Для корректной работы обоих сайтов хранение сессий рекомендуется сделать в БД https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=14026 т.к. у сайтов разные темп директории, соответственно если хранить в файлах то надо приводить всё в одну, чтобы не кастомизировать проще перейти в БД
Возможные проблемы и их решения
Применяю настройки в ISPConfig — по факту ничего не изменяется
При этом в правом верхнем углу ISPConfig наблюдаются красный кружок в цифрой — это не применённые изменения Проблема вероятно из-за php 8.3 по умолчанию в ОС, решение:
update-alternatives --config php
выбираем php 8.2 ждем более 1 минуты (изменения ISPConfig применяются раз в минуту) — должно работать
Не корректно запускается cron_events.php
Скорее всего в php.ini не включена опция short_open_tag. Можно задать глобально в конфигах /etc/php/ваша версия}/cli/php.ini
Рекомендации
При создании сайта
Если у Вас виртуальный сервер не нужно создавать/использовать клиентов. Создайте сайт под админом.
Для корректной работы почты
Должны быть прописаны прямая A и обратные записи PRT для домена сервера (не путать с доменом сайта). В том числе и для IPv6! Сервис для проверки работы почты https://www.mail-tester.com/ — отправлять письмо нужно непосредственно с сайта, например в PHP консоли mail()