Требования к серверному программному обеспечению
Apache (рекомендуется) работа на этом сервере оптимальна.
Для «1С-Битрикс: Управление сайтом» (не для «Битрикс24 в коробке») возможно использование:
IIS (Internet Information Server)(возможна установка) – работа продукта возможна с IIS 5, IIS 6 и IIS 7 и 7.5. Требуется дополнительная настройка для корректной работы с продуктом.
Eserv (возможна установка) – продукт тестировался для совместной работы с веб-сервером.PHP
Для работы продукта требуется наличие PHP версии не ниже 7.2.0 С 1 августа 2020 года. Рекомендуемая версия PHP — 7.4.0 и выше. . Выбор PHP-версии зависит от требований, предъявляемых вашим хостинг-провайдером, либо от установленной версии PHP на локальном компьютере. Рекомендуется использовать самую последнюю стабильную версию PHP, чтобы исключить возможность появления ошибок, связанных с PHP, а также для большей безопасности проекта на сервере.
Для корректной работы продукта требуется наличие следующих расширений PHP:
- GD – библиотека для работы с изображениями, требуется для построения графиков и диаграмм для модулей статистики, рекламы, техподдержки. Используется для работы механизма CAPTCHA.
- PHP XML – используется для работы системы обновлений. Библиотека по умолчанию включена в стандартной установке PHP. Для версии под Windows — поддержка встроенная.
- FreeType – библиотека необходима для корректной работы механизма CAPTCHA.
- Поддержка регулярных выражений (POSIX и Perl-compatible) – необходима для корректной работы внутренних механизмов продукта.
- Zlib compression – библиотека компрессии используется при работе системы обновлений для уменьшения количества передаваемых данных от сервера к клиенту.
- PHP openssl – библиотека используется для упаковки (шифрования) и распаковки (расшифровывания) данных.
- PHP-акселератор – крайне рекомендуется наличие PHP-акселератора, например OPcache или XCache, для значительного ускорения работы PHP-приложений (рекомендуется OPcache, он доступен сразу «из коробки» в PHP v.5.5+).
Внимание: eAccelerator не совместим с PHP v5.3+ и больше не поддерживается в продуктах «1C-Битрикс» с версии ядра 15.0.13. Подробнее см. в блоге разработчиков.
До версии 20.100.0 модуля main
Примечание: Для базы данных MySQL доступна кодировка UTF-8. Для корректной поддержки кодировки UTF-8 необходимо проверить, установлен ли в PHP модуль mbstring. Для этого в настройках PHP, в файле php.ini, должно быть:
mbstring.func_overload=2 mbstring.internal_encoding=UTF-8
Поддержка серверов баз данных
MySQL – минимальным техническим требованием является использование версии MySQL 5.6 С 30 июня 2019 года. . Рекомендуемая версия MySql — 5.7 и выше.
Для работы с СУБД MySQL требуется установленная поддержка MySQL для PHP.
Внимание! С 1 января 2017 года поддержка продуктов «1С-Битрикс» на Oracle Database и MS SQL Server стала ограниченной: клиенты не могут скачивать обновления продукта платформы и воспользоваться возможностями новых версий продукта.
Примечание: Кодировка MySQL utf8mb4 не поддерживается.
Настройки PHP
Для корректной работы продукта необходимо установить следующие параметры PHP:
-
memory_limit = 64M; Максимальный объем памяти в байтах, который разрешается использовать для работы PHP ядру продукта (в данном случае — 64 Мб).
- непосредственно в файле php.ini;
- из скрипта с помощью функции Такая строка добавляется в файле /bitrix/php_interface/dbconn.php в момент установки, значение задается пользователем. : ini_set(«memory_limit», «64M») ;
- в файле .htaccess с использованием директивы: php_value memory_limit 64M
- в файле httpd.conf с использованием директивы: php_admin_value memory_limit 64M
- используется веб-сервер Apache или совместимый с ним (IIS не является совместимым сервером);
- файлы .htaccess обрабатываются веб-сервером, т.е. в настройках веб-сервера (httpd.conf) установлена директива: AllowOverride All или другое значение, отличное от None ;
- PHP установлен как модуль Apache (в случае, если PHP работает как CGI, все необходимые значения следует учесть и установить при сборке PHP)
- upload_tmp_dir = < имя каталога Необходимо, чтобы указанный каталог существовал и на него были права на запись для пользователя, под которым работает веб-сервер. Параметр upload_tmp_dir может быть закомментирован в php.ini по умолчанию. >
- upload_max_filesize =
- В файле php.ini установить: session.use_trans_sid = 0
- В файле .htaccess установить: php_flag session.use_trans_sid off
Для демонстрационного сайта строка включена в указанный файл, требуется только раскомментировать ее.
Важно! C целью безопасности необходимо обязательно указывать отдельную папку хранения сессий для каждого пользователя хостинга.
Выбор ОС
Вендор рекомендует устанавливать продукты на Виртуальную машину BitrixVM или использовать веб-окружение BitrixEnv. Подробнее о них можно узнать в специальном курсе Виртуальная машина BitrixVM:
- Запуск виртуальной машины BitrixVM — «1C-Битрикс: Виртуальная машина» специально сконфигурирована для быстрого исполнения программных продуктов «1С-Битрикс»: разворачивается за минуты и сразу же готова к работе! На виртуальную машину можно не только установить ознакомительные версии продуктов «1С-Битрикс», но и перенести уже готовые проекты;
- Установка «1С-Битрикс: Веб-окружение» — Linux (BitrixEnv) — позволяет быстро и с минимальными затратами развернуть оптимальное окружение для работы продуктов и решений «1С-Битрикс» на Linux-платформе CentOS 6/7 (x86_64).
Необходимые настройки окружения при использовании других ОС описаны в главе Установка БУС/КП на другие окружения:
- Настройка окружения для SUSE Linux Enterprise Server 15;
- Настройка окружения для РЕД ОС 7.2;
- Настройка окружения для ALT 8 SP Server.
Настройка хостинга для работы с 1С-Битрикс
Приобретая дорогой тариф на хостинге или арендуя сервер или даже имея свой собственный, бывают ситуации, что заказчики сайта жалуются на медленную скорость работы сайта на 1С-Битрикс, причем версии сайта с демо-данными, т.е. бесплатной триальной 30 дневной версии продукта, которую можно свободно скачать с сайта 1c-bitrix.ru.
Дело в том, что мало хороших характеристик виртуального или физического сервера, программное обеспечение должно быть настроено соответствующим образом, чтобы удовлетворять требованиям 1С-Битрикс. Однако верно и обратное, что настройки, при которых 1С-Битрикс работает быстро, будут хороши и для любой другой системы управления сайтом.
Рассмотрим вариант, когда на сервере в качестве операционной системы выбран Linux.
Какие же требования предъявляются к такому веб-серверу?
Во-первых должен быть установлен php-акселератор (этот программный модуль кеширует скомпилированные php скрипты, которые могут в некомпилированном виде быть весьма большими по объему кода, а затем при запуске проверяет, если скрипты не были модифицированы, то сразу же выполняет их, увеличивая таким образом производительность работы в несколько раз). Пожалуй, не рекомендуется только eAccelerator из-за того, что поддержка продукта не осуществляется.
Рекомендовать же можно APCu, как встроенный в php последних версий модуль, либо opCache, который считается самым производительным.
Неплохо себя зарекомендовали xCache и APC.
Во-вторых необходимо достаточное количество оперативной памяти! Если у вас будет версия продукта 1С-Битрикс Бизнес, то 512 Мб оперативной памяти будут минимальным требованием.
Далее, нужно понять какой тип таблиц MySQL будет использован, рекомендуется использовать INNODB как более надежный вариант, но менее производительный, когда преобладают операции чтения, об этом подробнее поговорим ниже.
Таким образом, считаем, что у нас есть хостинг тариф, например на VDS (виртуальном выделенном сервере), где мы можем настраивать php и MySQL так как нам нужно.
Настройки PHP
Для php нужны следующие настройки, которое мы разберем, и посмотрим, что они означают.
1) Если вы собираетесь устанавливать 1С-Битрикс в кодировке utf-8 (рекомендуется делать именно так), то необходимо, чтобы была указана внутренняя кодировка и перегрузка почтовой и строковых функций (становятся доступны функции с префиксом mb_, например mb_strlen), если же продукт будет установлен в кодировке windows-1251, то эти строки не нужны
mbstring.func_overload=2
mbstring.internal_encoding=utf-8
2) Эта строка нужна для прохождения теста на корректность работы 1С-Битрикс (длина регулярных выражений)
pcre.recursion_limit = 1000
3) Кеширование реальных путей скриптов, а также время кеширования в секундах
realpath_cache_size = 4096K
realpath_cache_ttl = 3600
4) Временная зона. В рекомендациях 1С-Битрикс по синхронизации времени указана несколько устаревшая информация, попытка добавлять требуемые строки в файлы настроек системы приводят к неработоспособности продукта, поэтому реально нужна только эта настройка (используйте необходимую именно вам временную зону!) и настройка для базы данных, о чем будет сказано ниже
date.timezone = "Europe/Moscow"
5) Максимальное ограничение на число одновременно передаваемых переменных
max_input_vars = 15000
6) Настоятельно рекомендуется 1С-Битрикс, чтобы вывод ошибок по-умолчанию был включен. Редактировать настройку вывода ошибки и/или предупреждения можно и нужно в настройках главного модуля 1С-Битрикс в системе администрирования
display_errors = On
7) Настройки php-акселератора, например, у вас установлен акселератор APC (настройки для разных акселераторов, естественно будут разные, приведенные ниже настройки, рекомендованы 1С-Битрикс)
apc.num_files_hint = 30000 – максимальное число файлов для кеширования
apc.user_entries_hint = 30000 – максимальное число переменных для кеширования
apc.ttl = 86400 – время кеширования
apc.max_file_size = 4M – максимальный размер кешируемых файлов
apc.shm_size = 256M – размер выделяемый системе для кеширования суммарный
8) Ограничение оперативной памяти, выделяемой скриптам, 1 Гб значение, которого вполне хватает для интернет-магазина на редакции Бизнес и нагрузке 2000 уникальных посетителей в сутки. Зависит от редакции, например для редакции Стандарт вполне хватит и 128 Мб.
memory_limit = 1024M
9) Эти настройки индивидуальные для каждого проекта, отвечают за размер загружаемых файлов через систему администрирования (максимальный размер файла и максимальный размер, передаваемый через формы методом POST)
upload_max_filesize = 128M
post_max_size = 128M
Важно! После того, как вы настроили php-акселератор, нужно указать его в настройках 1С-Битрикс.
1. /bitrix/php_interface/dbconn.php
Нужно добавить строчки (для акселератора APC):
define("BX_CACHE_TYPE", "apc");
define("BX_CACHE_SID", $_SERVER["DOCUMENT_ROOT"]."#01");
2. /bitrix/settings.php
'cache' => array(
'value' => array(
'type' => 'apc',
'sid' => $_SERVER["DOCUMENT_ROOT"]."#01"
),
'readonly' => false,
),
Настройки базы данных MySQL
Теперь разберем, что делать с настройкой базы данных.
Считаем, что тип таблиц MySQL у нас INNODB
1) Размер буфера, для INNODB это фактический самая важная настройка, принцип простой, желательно, чтобы размер буфера был >= размер базы данных. Если база данных занимает 1Гб, отлично, если размер буфера будет 1Гб. Конечно, зависит эта настройка от количества оперативной памяти на вашем тарифе/VDS/сервере
innodb_buffer_pool_size = 256M
2) размер буфера лога, достаточная цифра для большинства проектов
innodb_log_buffer_size = 8M
3) отключаем буферизацию таблиц для файловой системы, обращаемся напрямую к файлам базы данных
innodb_flush_method = O_DIRECT
4) При каждой транзакции база данных MySQL пишет лог, в данном случае каждые 2 секунды, с этим параметром нужно быть осторожнее, он сильно влияет на производительность. Но если в проекте критична очень целостность данных, например, производятся платежи, то здесь такая настройка не нужна.
innodb_flush_log_at_trx_commit = 2
5) уровень изоляции транзакций, считать данные можно только после проведения транзакции
transaction-isolation = READ-COMMITTED
Тестируем примененые настройки
Напоследок посмотрим разницу показаний монитора производительности 1С-Битрикс, на примере тарифа облачной VDS, с параметрами образ Debian 7 LAMP (Apache + Nginx + MySQL)/2 ядра@2.6 Ггц/1024 Мб/20Гб SAS, php-акселератор APC. Установлена редакция Малый Бизнес.
До применения выше описанных настроек:
Битрикс opcache
Получается или чего-то не хватает, или уже все установлено. В документации по ZendOpcache указаны зависимые пакеты php-devel и gcc. Все установлено.
Стоило бы догадаться как закончить работу, но мы обратились в техподдержку Битрикс.
Решение оказалось простое:
В файле /etc/php.d/opcache.ini необходимо прописать верный путь к opcache.so.
zend_extension=/usr/lib64/php/modules/opcache.so
Спасибо старшему специалисту технической поддержки Битрикс. Мы считаем — лучше спросить, чем не спрашивать и ломать.
Какие параметры заданы у opcache:
realpath_cache_size 4096k
opcache.max_accelerated_files 100000
opcache.enable 1
opcache.validate_timestamps 1
opcache.memory_consumption 128
1С-Битрикс и PHP 7: ускоряем сайт в 2 раза за 5 минут

Мы создаем крупные информационные веб-системы, глубоко интегрированные в бизнес Заказчика. Большинство наших проектов – комплексные, интеграционные.
Наш принцип: Мы приносим пользу бизнесу клиента за счет осмысленного применения веб-технологий. В рамках этой стратегии мы тщательно и глубоко исследуем все новые технологические и маркетинговые приемы, проверяем их работу и обоснованно консультируем наших клиентов.
Сегодня – перевод Битрикс-проектов на php7.
1 июля 2016 компания 1С-Битрикс анонсировала версию 16.5 платформы “Управление сайтом”, а вместе с ней поддержку PHP версии 7. Это прекрасная новость, так как PHP7 работает примерно в 2 раза быстрее. Теоретически. В статье проверяем скорость работы Битрикса на PHP7 на деле.
Переход рекомендован ВСЕМ! А в особенности тем, кого хостинг ругает за слишком высокую нагрузку на процессор.
Статья о том, как перевести на PHP 7 сайт, размещенный на хостинге TimeWeb. Для других хостингов процедура аналогичная. По итогам замеряем скорость.
Исходные данные

- Подопытный: сайт нашего отдела маркетинга
- Версия PHP: 5.6
- Хостинг: TimeWeb Eterno
- Оценка производительности
78 — очень неплохо. Это соответствует времени генерации главной страницы = 1/78 секунды.
Моем руки

- Делаем бекап сайта
- Готовимся редактировать файлы НЕ через административную панель сайта. Мы будем редактировать конфигурационные файлы хостинга. Если в них допустить ошибку, сайт перестанет открываться. Поэтому редактирование нужно выполнять либо через интерфейс хостинга, либо через SSH/FTP.
- Убеждаемся, что конфигурация хостинга корректна с точки зрения 1С-Битрикс. Для этого запускаем проверку системы (Настройки → Инструменты → Проверка системы).
В результатах проверки не должно быть красных строк.
Переводим сайт на PHP 7
- Проверяем, что используется новая версия драйвера базы данных: MySqli. Как проверить и как перейти на новую версию описано в блоге 1С-Битрикс https://dev.1c-bitrix.ru/community/blogs/vad/the-new-kernel-and-the-mysqli-extension.php .
- Меняем версию PHP в настройках хостинга

- Корректируем 1 цифру в файле .htaccess

- Снова выполняем проверку сайта и убеждаемся что не появилось новых ошибок. См. пункт 3 в разделе “Моем руки”.
- В админ. панели в разделе “Настройки → Производительность → PHP” проверяем версию PHP. Минимально допустимая 7.0.8. В предыдущих версиях были серьезные ошибки. Для некоторых из них был сделан workaround в ядре Битрикса, но не для всех.
А теперь самое интересное
Снова смотрим на оценку производительности
Как видим, количество баллов производительности (в наших кругах “попугаев”) увеличилось в 2 раза. По информации от 1С-Битрикс увеличение может достигать 3-х раз и учитывая увиденное, этому можно верить.
Примечание №1: препятствием к переходу на PHP7 могут стать модули из Marketplace.
Во-первых, в самом языке ужесточились правила написания кода. Например, в статических/нестатических методах и способах обращения к ним.
Во-вторых, после перевода на PHP7 нельзя будет установить из Marketplace демо-версии платных модулей, если по ним не было выпущено обновлений после 1 июля 2016. Это связано с изменением механизма защиты этих модулей.
Примечание №2: обновление для виртуальной машины 1С-Битрикс ожидаем в сентябре. Если Ваш сайт развернут именно так, рекомендую подождать.
Подводя итог, могу сказать что получить такое ускорение сайта на битрикс за десятки минут это просто сказка. Матерые программисты подтвердят, что никакой рефакторинг кода никогда не даст такого прироста.
Всех желающих приглашаю оставить заявку на перевод своего сайта силами нашей техподдержки (быстро и с обязательным бекапом).
