#Требования платформы
Версии Битрикс предъявляют требования к PHP: для современных версий главного модуля нужен PHP 7.4 или выше (рекомендуется 8.1–8.2), необходимы расширения mbstring, curl, gd, json, xml, zip, mysqli, opcache. Из значений php.ini важны max_input_vars (не менее 10000), memory_limit (от 256 МБ), opcache.revalidate_freq=0 и mbstring.func_overload=0. После смены версии PHP на хостинге появляются ошибки совместимости: устаревший код шаблонов или сторонних модулей.
#Типичные ошибки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Слишком старая версия PHP5.x/7.0. | Не проходит проверка системы. | Поднимите до 8.1. |
| Слишком новая версия PHPСтарая версия Битрикс. | Фатальные ошибки. | Обновите платформу или верните PHP. |
| Нет расширенияmbstring, gd. | Сообщение «extension required». | Включите расширение. |
| Малое max_input_vars1000. | Не сохраняются большие формы. | Установите 10000. |
| Opcache кеширует старый кодИзменения не видны. | Старый код после правок. | revalidate_freq=0. |
| Устаревший код в шаблонахФункции удалены. | Ошибки после смены PHP. | Обновите код. |
#Диагностика
- Откройте проверку системы: /bitrix/admin/site_checker.phpВойдите в административную панель 1С-Битрикс с правами администратора и откройте «Настройки → Инструменты → Проверка системы» либо прямую ссылку
/bitrix/admin/site_checker.phpна своём домене. Запустите проверку и сохраните отчёт; обратите внимание на требования именно установленной редакции/версии. Если админка не открывается, посмотрите журнал PHP и используйте временную тестовую копию сайта. - Посмотрите версию PHP и требуемуюВ панели хостинга откройте настройки нужного домена → «Версия PHP» и запишите рабочую/новую версию. В административной панели Битрикс найдите сведения о системе и сравните совместимость с официальными требованиями вашей версии продукта. Команда
php -vв SSH показывает консольный интерпретатор и не доказывает, что веб-сайт работает на нём. Переключайте версию лишь после резервной копии и тестирования. - Проверьте расширенияВ административной панели или сведениях PHP для веб-сайта посмотрите список расширений, включая
mbstring,curl,gd,mysqli,xml,zip,opcache— необходимый набор зависит от выпуска и используемых модулей. Не проверяйте расширения Битрикс черезchrome://extensions: это расширения браузера, а не PHP. Если модуль отсутствует, включите его через панель PHP или обратитесь к хостеру. - Проверьте значения php.iniСравните
memory_limit,max_input_vars,upload_max_filesize,post_max_sizeс результатом штатной проверки Битрикс для вашей версии. Меняйте только значения, по которым получено конкретное замечание, с учётом ограничений памяти сервера. Старые параметрыmbstring.func_overloadиmbstring.internal_encodingнесовместимы с новыми PHP: не копируйте прежнийphp.iniцеликом. - Измените версию PHP в панели хостингаПеред переключением PHP экспортируйте базу, создайте архив файлов и тестовый поддомен с копией сайта. В панели нужного домена измените PHP на версию, поддерживаемую вашим выпуском 1С-Битрикс, сохраните настройку и проверьте тестовую копию: вход, корзину, заказы, обновления и фоновые агенты. При ошибках верните прежнюю версию, пока несовместимые модули не исправлены.
- Проверьте, что в .htaccess нет устаревших директивЕсли после смены PHP возникла ошибка 500, откройте журнал Apache/Nginx по времени запроса и проверьте
.htaccessтолько при Apache: устаревшиеphp_value/php_flagмогут даватьInvalid commandпри PHP-FPM. Сохраните файл и исправляйте конкретную директиву по правилам выбранного обработчика; не удаляйте весь.htaccess, так как там могут быть важные ограничения доступа. - Проверьте журнал ошибокЧерез панель хостинга найдите error.log нужного сайта и свежие строки после повторения ошибки. На сервере с SSH уточните имя действующей службы PHP-FPM и прочитайте её журнал
journalctl -u реальная-служба -n 50 --no-pager. Сопоставьте упоминания несовместимых функций, нехватки памяти и расширений с изменённой версией PHP. При неуспехе приложите обезличенный лог хостеру и верните рабочую версию. - Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
#Что делать при белом экране
Включите вывод ошибок временно: в bitrix/.settings.php в блоке exception_handling установите debug => true. Перезагрузите страницу и найдите ошибку: она укажет файл и строку. После устранения верните значение false, чтобы не показывать ошибки посетителям.
#Как проверить, что сайт готов к смене версии
Прежде чем менять PHP, откройте «Настройки → Настройки продукта → Проверка системы» и убедитесь, что тест проходит без красных пунктов. Затем в разделе «Настройки → Настройки продукта → Модули» проверьте, что все модули обновлены до последней версии: старые версии модулей main, iblock, sale не поддерживают PHP 8. Самописные компоненты и шаблоны проверьте поиском устаревших вызовов: each(, create_function, ${var} в строках (устарело в PHP 8.2) и доступ к смещениям строк фигурными скобками.
ls /usr/bin/php* /opt/php*/bin/php 2>/dev/nullphp8.2 -v 2>/dev/nullЕсли у вас виртуальная машина «1C-Битрикс: Виртуальная машина», версию PHP меняют через меню /root/menu.sh (раздел настроек веб-окружения), а не вручную.