Налаштування серверного оточення для 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 | — |
Bitrix 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 дні.







