Решение проблем при установке Битрикс на timeweb

Инструкция
Установка 1С-Битрикс на shared-хостинг спотыкается о параметры PHP: mbstring, max_input_vars, отображение ошибок. Разбираем актуальные для PHP 8.x требования и способы их поправить – через .user.ini, .htaccess или панель хостинга.

8 мин 55 Обновлено 5 сентября Сложность: Средняя

TL;DR

  • mbstring.func_overload = 2 устарел: в PHP 8 директива удалена, нужно func_overload = 0.
  • На PHP-FPM директивы php_value в .htaccess не работают – пишите в .user.ini или панель.
  • max_input_vars = 10000 нужен админке Битрикса для массового сохранения данных.
  • Современное ядро требует PHP 8.1+ и расширения mbstring, opcache, GD/ImageMagick.
  • Старые «универсальные» вставки из интернета на PHP 8 дают ошибку 500 – не копируйте их вслепую.

При установке 1С-Битрикс мастер сначала прогоняет предварительную проверку окружения, а после установки то же делает раздел Настройки → Инструменты → Проверка системы. Чаще всего установка спотыкается не о код, а о параметры PHP, которые на shared-хостинге вроде Timeweb заданы «по умолчанию» и не совпадают с требованиями CMS. Ниже – что именно проверяет Битрикс в 2026 году на PHP 8.x, почему старые советы из интернета могут навредить и как править настройки, когда сайт работает через PHP-FPM, а не mod_php.

Главное изменение: mbstring.func_overload больше не нужен

В старых инструкциях (для PHP 5.x–7.1) советовали выставлять mbstring.func_overload = 2. Это устаревший и теперь вредный совет. Директива mbstring.func_overload объявлена устаревшей в PHP 7.2 и полностью удалена в PHP 8.0. Современный Битрикс на PHP 8.1–8.3 требует обратного:

  • mbstring.func_overload = 0 – перегрузка строковых функций должна быть выключена;
  • расширение mbstring должно быть установлено и включено (это отдельное требование, не путать с func_overload);
  • mbstring.internal_encoding отдельно задавать не нужно – эта директива тоже удалена, кодировку задаёт default_charset = UTF-8.

Если вы копируете старый блок из чужого .htaccess со строкой php_value mbstring.func_overload 2 на сервер с PHP 8 – вы получите ошибку 500 на весь сайт, потому что PHP не знает такой директивы. Первым делом удалите её.

Куда писать настройки PHP: .htaccess, .user.ini или панель

Способ правки зависит от того, как хостинг запускает PHP. Это ключевой момент, из-за которого «рабочий» совет не срабатывает у другого человека.

  • mod_php (PHP как модуль Apache) – настройки через php_value и php_flag в .htaccess. Сегодня встречается всё реже.
  • PHP-FPM / CGI / FastCGIphp_value в .htaccess не работает и сам по себе тоже даёт ошибку 500. Настройки задают в файле .user.ini в корне сайта либо в панели хостинга.

Timeweb в большинстве тарифов использует PHP-FPM, поэтому надёжнее всего менять параметры в панели управления (раздел выбора версии и настроек PHP) или через .user.ini. Пример .user.ini в корне сайта:

mbstring.func_overload = 0
default_charset = "UTF-8"
display_errors = On
max_input_vars = 10000
pcre.backtrack_limit = 1000000
pcre.recursion_limit = 100000

Изменения в .user.ini подхватываются не мгновенно – PHP кеширует файл на время user_ini.cache_ttl (по умолчанию 300 секунд). Если правка «не видна» – подождите 5 минут или сбросьте пул FPM через панель.

Вариант для mod_php (.htaccess)

Если хостинг всё же работает на mod_php, те же параметры пишут так – с защитой через IfModule, чтобы файл не ронял сайт на другом окружении:

<IfModule mod_php.c>
    php_value mbstring.func_overload 0
    php_value default_charset "UTF-8"
    php_flag display_errors On
    php_value max_input_vars 10000
</IfModule>

Ошибка «max_input_vars должно быть не ниже 10000»

Эту ошибку показывает уже пост-установочная Проверка системы. Битриксу нужно много переменных в одном запросе – например, при массовом сохранении настроек инфоблоков или прав доступа. Значение по умолчанию (1000) для админки мало. Решение – выставить max_input_vars = 10000 тем же способом, что и остальные директивы (см. выше), и повторить проверку.

Актуальные требования Битрикс к PHP в 2026

  • Версия PHP: современные редакции ядра требуют PHP 8.1 и выше; проверьте, что в панели выбрана поддерживаемая версия, а не PHP 7.x.
  • Расширения: mbstring, zip, GD или ImageMagick, json, mysqli, opcache, а также подключённый zend_opcache.
  • Память: memory_limit от 256M (для установки и обновлений лучше 512M).
  • Загрузка файлов: согласуйте upload_max_filesize и post_max_size – второе должно быть не меньше первого.
  • display_errors держите включённым только на этапе установки и отладки; на боевом сайте ошибки должны писаться в лог, а не показываться посетителям.

Почему это работает и типичные ошибки

  • Не тот файл настроек. Правите .htaccess, а хостинг на FPM – изменения игнорируются или роняют сайт. Сначала выясните режим PHP (в панели или через phpinfo(), строка Server API).
  • Копирование устаревших блоков. Старые «универсальные» вставки с func_overload 2 и internal_encoding на PHP 8 дают 500-ю ошибку.
  • Кеш .user.ini. Ждёте мгновенного эффекта, а изменения подхватятся только через TTL кеша.
  • Права на .htaccess. Если директива запрещена настройкой AllowOverride на сервере, панель или техподдержка хостинга – единственный путь.

Кодировка файлов и UTF-8 – частый спутник таких проблем: если исходники сайта в другой кодировке, поможет гайд «Узнать и изменить кодировку файла в mac». После установки пригодятся и заметки по работе с выводом данных инфоблоков – например, «Вывод блоков только на определённых страницах» и «Получить ID из GET и вывести элементы инфоблока».

Частые вопросы

Почему Битрикс раньше требовал mbstring.func_overload = 2, а теперь 0?

Директива func_overload объявлена устаревшей в PHP 7.2 и удалена в PHP 8.0. Современное ядро Битрикса работает без перегрузки строковых функций, поэтому требует значение 0. Строка func_overload на PHP 8 вызывает ошибку 500.

Я добавил php_value в .htaccess, но получил ошибку 500. В чём дело?

Скорее всего хостинг запускает PHP как FPM или CGI, а не mod_php. В этом режиме php_value в .htaccess не поддерживается. Задавайте параметры в файле .user.ini в корне сайта или в панели хостинга.

Как узнать, в каком режиме работает PHP на моём хостинге?

Создайте временный файл с вызовом phpinfo() и посмотрите строку Server API: FPM/FastCGI означает PHP-FPM, Apache 2.0 Handler – mod_php. После проверки файл удалите.

Изменил .user.ini, но настройки не применились. Почему?

PHP кеширует .user.ini на время user_ini.cache_ttl, по умолчанию 300 секунд. Подождите 5 минут или перезапустите пул PHP-FPM через панель хостинга.

Какая версия PHP нужна для установки Битрикс в 2026 году?

Современные редакции ядра требуют PHP 8.1 и выше. Убедитесь, что в панели хостинга выбрана поддерживаемая версия, а не PHP 7.x, иначе часть модулей не установится.

Материалы по теме

Что почитать дальше по этой теме

Инструкция Узнать и изменить кодировку файла в mac Как определить кодировку файла в macOS и перекодировать его в UTF-8: команды file и iconv в терминале, автоопределение через uchardet, удаление BOM и способ через VS Code. Разбираем частый случай Windows-1251 в проектах на Битриксе. 7 мин 93 10 августа 2017 Инструкция Вывод блоков только на определённых страницах сайта Как в 1С-Битрикс показать баннер, форму или блок только на нужных страницах. Разбираем API $APPLICATION->GetCurPage и GetCurDir, разницу между физическим и SEF-адресом, проверку по разделу и типичные ошибки с ЧПУ. 7 мин 59 24 октября 2018 Инструкция Получить ID из GET и вывести элементы и свойства инфоблока Как в 1С-Битрикс взять ID элемента из GET-параметра, безопасно его отфильтровать и выбрать поля и свойства элемента инфоблока. Разбираем GetNextElement, защиту от дублей при множественных свойствах и D7-альтернативу. 8 мин 56 19 июля 2019 Инструкция Сменить формат даты в CMS «Битрикс» Как вывести поле «Начало активности» элемента инфоблока в формате «02 июня, 2016». Разбираем FormatDate с шаблоном «d F, Y», разбор строки через ParseDateTime и подводные камни с локалью и часовым поясом. 6 мин 50 18 мая 2017