Установка и настройка BitrixVM - образ, скрипт, меню, свои настройки
Ставим BitrixVM образом или скриптом, проходим первый запуск и раскладываем свои настройки так, чтобы их не снесло обновлением.
Решение
Ставим окружение скриптом на чистый CentOS:
wget https://repo.bitrix.info/yum/bitrix-env.shchmod +x bitrix-env.sh./bitrix-env.sh # ставит nginx, Apache, PHP, MySQL и меню# скрипт рассчитан на чистый сервер: поверх чужих пакетов он ломает настройкиГотовый образ виртуальной машины содержит ровно это же окружение, только уже развёрнутым. Для арендованного сервера берут скрипт, для локального стенда - образ: разница только в способе доставки.
Смотрим версию окружения и состав пула:
rpm -q bitrix-env # версия окружения, не версия продукта/opt/webdir/bin/bx-sites -a list # сайты пула с их каталогами/opt/webdir/bin/bx-pool -a status # состояние пула и его узловsystemctl status nginx php-fpm mysqld --no-pager | grep -E 'Active|●'Версия окружения и версия «1С-Битрикс» не связаны и обновляются независимо. Путать их - частая причина попыток «обновить окружение» из админки сайта.
Кладём свои настройки PHP и MySQL:
# свои директивы отдельными файлами: сгенерированные перезапишет обновлениеecho 'memory_limit = 512M' > /etc/php.d/z_bx_custom.iniecho -e '[mysqld]\ninnodb_buffer_pool_size = 2G' > /etc/mysql/conf.d/z_bx_custom.cnfsystemctl restart php-fpm mysqldПрефикс z_ в имени важен: файлы подключаются по алфавиту, и директива из файла
с поздним именем перекрывает раннюю. Правки в /etc/php.ini и /etc/my.cnf
живут до ближайшего обновления окружения.
Обновляем окружение отдельно от продукта:
# сначала снимок диска или бэкап: откат обновления окружения штатно не предусмотренyum clean all && yum update bitrix-env/opt/webdir/bin/bx-sites -a list # проверяем, что сайты на местеrpm -q bitrix-env # и что версия окружения смениласьОбновление перегенерирует конфиги nginx, PHP и MySQL. Свои файлы в подключаемых каталогах оно не трогает, а всё остальное приводит к своему виду.
Отката у обновления окружения нет, поэтому снимок диска делают всегда, а не только на боевом сервере. Стенд восстановить дешевле, чем разбираться, какой пакет откатился наполовину.
Пул сайтов - отдельное понятие, которое стоит понять до первой установки. Окружение ведёт список сайтов и обслуживает только то, что в нём числится: сертификаты, резервные копии, настройки почты и обновления. Сайт, развёрнутый руками в обход меню, остаётся невидимым для всей этой машинерии, и обнаруживается это обычно в момент, когда у него истекает сертификат.
Типичные проблемы
Настройки PHP вернулись к прежним после обновления.
Правка делалась в /etc/php.ini. Обновление окружения перезаписывает сгенерированные конфиги целиком: свои директивы кладут в /etc/php.d/ отдельным файлом.
Меню виртуальной машины не открывается.
Повреждён скрипт запуска или у пользователя нет прав. Меню - обычная программа пакета окружения, и восстанавливается переустановкой пакета: сайты и база при этом не страдают.
После включения машины сайт не поднимается.
Сервисы не в автозапуске. На образе они включены, но после ручных экспериментов с systemctl stop автозапуск нередко снимают и забывают вернуть.
На сервере два сайта, а меню видит один.
Второй сайт заводился руками, минуя меню. Окружение ведёт свой список сайтов пула, и то, чего в нём нет, оно не обслуживает: ни сертификаты, ни бэкапы, ни настройки.
Кодировка в консоли ломает русские имена.
Локаль системы отличается от UTF-8. Меню и скрипты окружения выводят русский текст, и в другой локали он превращается в мусор.
Частые вопросы
Можно ли поставить своё ПО рядом с окружением?
Да, но с оглядкой: окружение управляет nginx, Apache, PHP и MySQL и перегенерирует их конфиги. Сторонние сервисы на других портах живут спокойно, а вот второй веб-сервер на том же порту конфликтует.
Как подключиться к машине из среды разработки?
По SSH с ключом: пользователь bitrix владеет каталогом сайта. Права важнее доступа - файлы, созданные под другим пользователем, веб-сервер читать не сможет.
Что делать, если нужна версия PHP старше поддерживаемой?
Ставить окружение соответствующего поколения: каждая версия окружения несёт свой набор пакетов. Смешивать PHP из стороннего репозитория с окружением не стоит - обновление вернёт свой пакет.
Обновлять окружение или переустанавливать?
Обновлять, если версия близкая, и переустанавливать на новом сервере с переносом сайтов, если разрыв большой. Второй путь дольше, но предсказуемее: старые конфиги не тянутся следом.
Смежное
- BitrixVM и веб-окружение - оглавление подтемы
- Сервер и поиск - устройство сервера целиком
- Мультисайтовость - несколько сайтов в одном пуле
- nginx и PHP-FPM - что именно генерирует окружение
- Не создаётся резервная копия - снимок перед обновлением окружения
- Обновление платформы и PHP - версии PHP в окружении
- Отправка почты с сервера - почта настраивается тем же меню
- Ошибка при установке веб-окружения - когда установка обрывается
- SSL-сертификат: выпуск, продление, перенос - защищённое соединение после установки
- Push and Pull: настройка сервера очередей и проверка - ещё одна служба окружения
- Перенос сайта на другой сервер - переезд на подготовленный сервер
- Сайты в пуле BitrixVM: добавление, каталоги, права и доступ - что делать после первой установки
- Сайт не поднялся после перезагрузки - автозапуск служб окружения
- Проверка системы: требования, отчёт, что чинить - проверка сервера после установки
- Платформа на обычном хостинге: настройка руками - установка без веб-окружения