Инструкция обновлена 10 октября 2025 г.
«1С-Битрикс: Виртуальная машина» (BitrixVM) изначально создавалась под CentOS и была тесно связана с этим дистрибутивом. Но CentOS ушел с рынка, а официальные сборки теперь выходят только под AlmaLinux, Rocky Linux, Oracle Linux и CentOS Stream. Для тех, кто работает на Ubuntu, это означает: ни BitrixVM, ни BitrixEnv официально не подходят.
В данном руководстве мы разберем процесс развертывания «1С-Битрикс» с использованием Docker-контейнеров в среде Ubuntu. Настроим веб-сервер и PHP-FPM, подключим базу данных, установим Bitrix через официальный скрипт и убедимся, что сайт запускается в браузере.
Важно: описанное ниже решение не является полноценной BitrixVM. Мы воссоздаем функциональность виртуальной машины в Docker. Такой подход повторяет ключевые возможности BitrixVM (Nginx, PHP-FPM, MariaDB, настройка окружения), но при этом не зависит от конкретного дистрибутива. При этом мы жертвуем быстродействием Битрикса.
Подготовка окружения
Для запуска Bitrix в Docker на Ubuntu понадобится облачный сервер. Например, можно воспользоваться сервером от Timeweb Cloud — здесь самая бюджетная конфигурация стоит 300 ₽, а доступность составляет 99,98%. Арендуйте сервер и подключитесь к нему через SSH — для работы понадобится доступ к командной строке.
Установите Docker. Это можно сделать с помощью нескольких команд:
После завершения установки можно приступать к конфигурации Docker-инфраструктуры.
Структура проекта
Каталог проекта для Bitrix с компонентами Nginx, PHP-FPM и MariaDB имеет следующую организацию:
Далее в статье разберем, за что отвечает каждый файл.
Создайте директорию проекта и перейдите в нее. В строке ниже project — это название директории.
Файл конфигурации Docker Compose
Создайте файл docker-compose.yml — основной элемент проектной архитектуры. В нем определены все необходимые сервисы для функционирования Bitrix. Docker Compose обеспечивает запуск компонентов единой командой, управление зависимостями и централизованное хранение настроек.
Для создания файла и ввода конфигурации используйте текстовый редактор nano:
Вставьте в файл шаблон конфигурации:
Выйдите из редактора nano комбинацией клавиш Ctrl + X, а далее нажмите на кнопку Y для сохранения изменений.
Управление параметрами через .env
В docker-compose.yml пароли и учетные данные не прописываются напрямую, а передаются через переменные окружения из файла .env. Такой подход повышает безопасность (конфиденциальные данные не хранятся в открытом виде) и упрощает управление настройками. Каждый разработчик может использовать персональный .env, а для production- и development-сред задавать разные параметры без модификации docker-compose.yml.
В итоге получается следующий файл .env:
Настройка Nginx
Перейдем к конфигурации файла nginx.conf. Этот файл определяет правила обработки запросов веб-сервером:
- указывает Nginx прослушивать порт 80 и обрабатывать запросы по адресу
http://localhost; - определяет корневой каталог
/var/www/htmlкак место размещения файлов Bitrix; - задает приоритетные индексные файлы
index.phpиindex.html; - настраивает обработку ошибок 404 через
index.php(требуется для работы Bitrix); - определяет передачу PHP-запросов в контейнер с PHP-FPM для выполнения.
Вставьте в файл nginx.conf эту конфигурацию:
Подготовка образа PHP через Dockerfile
Создайте файл Dockerfile в директории php. Он необходим для установки всех требуемых модулей PHP, обеспечивающих работу «1С-Битрикс».
Базовый образ php:8.1-fpm содержит только ядро PHP и менеджер FPM. Для корректной работы Bitrix требуется дополнительный набор расширений: обработка изображений, взаимодействие с СУБД, архивами и XML. В Dockerfile выполняется установка необходимых библиотек и активация модулей PHP.
Файл выглядит так:
Что здесь происходит:
-
мы подключаем библиотеки для работы с изображениями, архивами, XML и LDAP;
-
настраиваем модуль
gd, чтобы PHP умел работать с картинками в формате JPEG и со шрифтами; -
устанавливаем расширения
gd,mysqli,opcache,zip,xml,ldap, которые требуются Битриксу для корректной работы; -
очищаем кеш пакетов, чтобы образ занимал меньше места.
Конфигурация PHP — bitrix.ini
Стандартные параметры образа PHP не соответствуют требованиям «1С-Битрикс». В отличие от BitrixVM, где настройки предопределены, в Docker их необходимо задавать вручную. Для этого создается файл php/conf.d/bitrix.ini, который монтируется в контейнер через docker-compose.yml.
Главное преимущество такого подхода в том, что настройки не сбрасываются после перезапуска контейнера. Они всегда остаются одинаковыми для всех членов команды, и их удобно менять прямо в одном файле.
Создание папки bitrix и скачивание BitrixSetup
Осталось подготовить папку для файлов самого Битрикса. В корне проекта создайте директорию bitrix — именно сюда будут устанавливаться файлы CMS.
Затем скачайте в нее официальный установочный скрипт BitrixSetup:
Важно: иногда при запуске BitrixSetup появляются ошибки вида Permission denied. Это значит, что контейнеру не хватает прав на запись в директорию ./bitrix. Самый быстрый способ решить проблему для локальной разработки — дать полный доступ:
Однако это небезопасный вариант: все пользователи на сервере получат права на запись. Для продакшн-среды рекомендуется правильно настроить владельца и группу файлов (UID/GID или пользователя www-data). Подробно про права доступа написано в документации.
Запуск контейнеров
После подготовки всех компонентов (docker-compose.yml, .env, nginx.conf, Dockerfile для PHP и директории bitrix) запустите проект командой:
Флаг -d обеспечивает фоновый режим работы контейнеров. Система автоматически соберет образ PHP, загрузит образы Nginx и MariaDB, и запустит три сервиса: базу данных, PHP-процессы и веб-сервер.
Проверьте статус контейнеров:
При успешном запуске откройте в браузере http://localhost/bitrixsetup.php — вы увидите установочный мастер «1С-Битрикс».
Важный момент: при настройке подключения к базе данных в мастере установки вместо
localhostукажитеdb— это имя сервиса MariaDB изdocker-compose.yml. Внутри Docker-сети контейнеры взаимодействуют по именам сервисов, а не через локальный хост.
Заключение
Использование Docker особенно эффективно для локальной разработки и тестирования благодаря быстрому развертыванию. В production-средах необходимо уделить внимание настройке прав доступа, организации резервного копирования и обеспечению безопасности конфигурационных файлов.
