Настройка серверного окружения для 1С-Битрикс
1С-Битрикс предъявляет конкретные требования к версиям и конфигурации ПО: несовместимость PHP с установленной версией ядра, неправильные настройки open_basedir, отсутствие расширений mbstring или gd — всё это приводит либо к белому экрану, либо к деградации части функционала без явных ошибок. Настройка окружения «под Битрикс» — это не просто установка LAMP-стека.
Требования к стеку
Актуальные рекомендации для Битрикс (проверяйте в системных требованиях вашей версии):
| Компонент | Рекомендуемая версия | Минимум |
|---|---|---|
| PHP | 8.1–8.2 | 7.4 |
| MySQL/MariaDB | 8.0 / MariaDB 10.6 | MySQL 5.7 |
| Nginx | 1.20+ | 1.18 |
| PHP-FPM | в связке с PHP | — |
| Redis / Memcached | Redis 7 / Memcached 1.6 | — |
Битрикс VM или чистый сервер
Bitrix Environment (bitrixenv) — официальный инсталлятор Битрикс для CentOS/Rocky Linux, устанавливает весь стек с оптимизированными для Битрикс конфигурациями:
wget http://repos.1c-bitrix.ru/yum/bitrix-env.sh
chmod +x bitrix-env.sh
./bitrix-env.sh
Плюсы: автоматическая настройка nginx + apache + php-fpm, готовые конфиги Битрикс, встроенный скрипт bx-manage.sh для управления. Минусы: привязка к CentOS/Rocky, сложнее кастомизировать.
Ubuntu/Debian (ручная настройка) — больше контроля, проще интегрировать с современными инструментами (Docker, Ansible, GitLab CI):
# PHP 8.1 из ppa:ondrej/php
add-apt-repository ppa:ondrej/php
apt install php8.1-fpm php8.1-mysql php8.1-mbstring php8.1-gd \
php8.1-curl php8.1-xml php8.1-zip php8.1-opcache \
php8.1-intl php8.1-soap
PHP-расширения обязательные для Битрикс
Без этих расширений отдельные модули работать не будут:
-
mbstring— работа с кириллицей -
gdилиimagick— ресайз изображений черезCFile::ResizeImage() -
curl— HTTP-запросы (оплата, интеграции, SMS) -
soap— интеграция с 1С -
zip— обновление через маркетплейс -
opcache— критически важен для производительности -
pcre— шаблонный движок компонентов
Параметры php.ini под Битрикс
memory_limit = 256M ; минимум 128M, для импорта 1С — 512M
max_execution_time = 120 ; стандарт; для крон-задач — 0
upload_max_filesize = 100M ; загрузка файлов в медиабиблиотеку
post_max_size = 110M
max_input_vars = 10000 ; Битрикс-формы с множеством полей
default_charset = UTF-8
date.timezone = Europe/Moscow
opcache.enable = 1
opcache.memory_consumption = 256
opcache.max_accelerated_files = 20000
opcache.revalidate_freq = 60 ; в prod можно 300
Права на директории
Битрикс требует записи в несколько директорий:
chown -R www-data:www-data /var/www/bitrix
chmod -R 755 /var/www/bitrix
chmod -R 777 /var/www/bitrix/bitrix/cache
chmod -R 777 /var/www/bitrix/upload
chmod -R 777 /var/www/bitrix/bitrix/managed_cache
open_basedir — частый источник проблем. Если включён, добавляем пути Битрикс:
open_basedir = /var/www/bitrix:/tmp:/var/log/php
Кейс: переезд на новый сервер
Магазин переезжал с хостинга (PHP 7.4, MySQL 5.7) на VPS (PHP 8.1, MySQL 8.0). После переноса: каталог не отображался, в логах — Notice: Undefined variable и mysql_num_rows(): Argument #1 must be of type mysqli_result. Причина: устаревший код шаблона использовал старое MySQL API, несовместимое с PHP 8.
Решение: включить error_reporting = E_ALL в dev-окружении, исправить устаревшие вызовы, заменить на $result->num_rows. Плюс выставить sql_mode = '' в MySQL 8 временно для обратной совместимости до рефакторинга.
Срок настройки окружения с нуля на VPS под Битрикс: 1–2 дня.







