BitrixVM как обновить PHP до 7.4 и 8.1
Разработчики CMS Bitrix рекомендовали использовать для BitrixVM версию PHP 7.4. Начиная с февраля 2023 г. рекомендованная версия уже PHP 8.1. Обновить версию PHP до 7.4 или 8.1 вы можете за несколько шагов.
Перед началом работы рекомендуем обязательно создать резервную копию!
Если вы используете более раннюю версию BitrixVM, то сначала нужно обновить ее до актуальноый версии.
PHP 8.1 показывает самый лучшие результаты по скорости работы по сравнению с другими версиями PHP, поэтому мы рекомендуем использовать ее для любого сайта, в том числе для 1С-Битрикс.
Обновление версии BitrixEnv
Подключитесь к серверу по SSH и выполните в меню Bitrix следующие действия:
- Выберите пункт 1. Manage servers in the pool, а затем 10. Enable or disable bitrix-env beta versions:

- Выберите пункт 1. Enable bitrix-env beta versions, а затем введите y для подтверждения обновления:

- Далее в главном меню выберите пункт 1.Manage servers in the pool, а затем 4. Update packages on host.
- При запросе Enter server address введите IP-адрес сервера.
- При запросе Please choose update type введите на выбор: bitrix — для обновления только BitrixEnv до актуальной версии, либо all для обновления всех имеющихся пакетов, в том числе и BitrixEnv.
- Далее будет запущен процесс обновления. После завершения обновления версия BitrixEnv изменится на 7.4.11

Обновление версии PHP до 7.4 или 8.1
- В главном меню выберите пункт 1.Manage servers in the pool, а затем 8. Update PHP and MySQL.
- Далее выберите пункт 1. Upgrade PHP.
- Далее выберите пункт 1. Update PHP to version 7.4 или 8.1, в зависимости от того, какая версия вам нужна, и введите для подтверждения обновления.

На этом обновление версии PHP завершено.
Как обновить php на сайте битрикс
Обновление PHP до версии 8 может стать проблемой для пользователей Битрикс24 и 1С-Битрикс, однако оно может принести множество преимуществ, таких как улучшенная производительность, большая безопасность и возможности для развития сайта или корпоративного портала. Преимущества обновления PHP для пользователей Битрикс24
Отличия между версиями PHP 7 и 8
Проблемы при обновлении до 8 версии
Рекомендации по обновлению
Преимущества обновления PHP до версии 8 для пользователей Битрикс24
Один из главных аргументов в пользу обновления PHP до версии 8 — это увеличение скорости работы сайта. Версия PHP 8 предлагает новые возможности оптимизации, а также уменьшает нагрузку на сервер. Это может привести к увеличению скорости загрузки страниц и обработки запросов, что улучшает взаимодействие пользователей с сайтом.
Версия PHP 8 также обеспечивает большую безопасность, предоставляя новые функции, позволяющие защищать сайт от уязвимостей, а также устранять ошибки безопасности. Это особенно важно для пользователей Битрикс24, поскольку веб-приложения могут быть подвержены риску взлома.
Кроме того, PHP 8 предоставляет новые функциональные возможности для разработчиков, такие как улучшенный синтаксис, функции оптимизации кода и расширения для работы с базами данных. Это может значительно упростить разработку и ускорить время выпуска новых функций и обновлений.
Еще один важный аргумент в пользу обновления PHP, это техническая поддержка вендора и обновление продукта. Техническая поддержка Bitrix, как правило, требует использования последней версии PHP и ядра Битрикс24, чтобы обеспечить стабильную работу сайта и защитить его от уязвимостей. В противном случае, вам могут отказать в поддержке и обновления ряда компонентов не установятся.
Отличия между версиями PHP 7 и 8
Принципиальное отличие между PHP 7 и 8 заключается в новых функциях и улучшениях, включая JIT-компилятор, более эффективную обработку ошибок, улучшенную работу с типами данных, усовершенствованную работу с асинхронными операциями и другие функции, которые не доступны в более ранних версиях PHP.
Проблемы при обновлении до версии 8
При обновлении PHP могут возникнуть проблемы, связанные с кастомными (самостоятельно разработанными) модулями и компонентами, но в большинстве случаев эти проблемы можно решить, обновив эти модули или компоненты до совместимых версий. Также может возникнуть необходимость в покупке обновлений установленных готовых модулей из Маркетплейс и доработок, которые ранее были выполнены. Эти проблемы могут привести к дополнительным затратам на обновление сайта, но в долгосрочной перспективе они могут оказаться оправданными, благодаря повышению производительности и безопасности сайта.
В целом, обновление PHP до версии 8 может быть полезным шагом для улучшения производительности, безопасности и функциональности сайта. Однако, перед обновлением необходимо подготовиться и проверить совместимость установленных модулей и компонентов с новой версией PHP.
Рекомендации по обновлению
Если вы планируете обновление PHP до версии 8, то рекомендуется сначала протестировать его на тестовой среде, чтобы убедиться, что все модули и компоненты продолжают работать корректно. Также рекомендуется связаться с разработчиками установленных модулей и компонентов, чтобы узнать о совместимости с новой версией PHP.
Отметим, что количество проблем, которые могут возникнуть при переходе на PHP 8, зависит от того, насколько кастомизирован ресурс. Если вы используете кастомные модули и компоненты, то необходимо обновить их до совместимых версий, чтобы избежать проблем при обновлении PHP.
Также следует сделать копию ресурса на тестовом сервере и провести тестирование, чтобы понять, какой функционал сломался и нужно ли его чинить. После этого можно произвести обновление на боевой среде, зная, что именно нужно починить.
В целом, обновление PHP до версии 8 может быть сложным процессом, но он может принести множество преимуществ для вашего сайта. Если вы не уверены в том, как выполнить это обновление, то рекомендуется обратиться к специалистам, которые помогут выполнить обновление правильно и безопасно для вашего сайта, например к нам, в IPG.
Как обновить версии MySQL и PHP для сайтов на окружении Битрикс
![]()
Для максимальной производительности сайтов на веб-окружении Битрикс важно своевременно обновлять версии PHP и MySQL. Перед началом работ следует обновить веб-окружение Битрикс до последней версии, о том, как это сделать мы рассказывали в статье про обновление веб-окружения Битрикс.
Обновление версии PHP
Подключимся к серверу по SSH и авторизуемся под root-пользователем, чтобы попасть в меню веб-окружения. Далее выберем пункт «1. Manage servers in the pool» :
В открывшемся списке выбираем пункт «8. Update PHP and MySQL» :
Далее вас попросят ввести hostname, после появится меню с выбором увеличения или понижения версия PHP: «1. Update PHP» , «2. Downgrade PHP» :
Текущая версия PHP, которая используется на сервере, — 7.4. Нам необходимо обновление, поэтому выбираем пункт «1. Upgrade PHP» . И в следующем меню для обновления PHP предлагается 2 варианта:
- «1. Update PHP to version 8.1» — обновление PHP до версии 8.1,
- «2. Update PHP to version 8.0» — обновление PHP до версии 8.0.
Выберите нужный пункт, в нашем случае это «2. Update PHP to version 8.0» . Появится строка с подтверждением обновления. Напишите «y» (yes) и нажмите Enter:

Появится сообщение о том, что создано задание на обновление, и будет указан идентификатор задания (Job ID), процесса (PID) и текущий статус выполнения (Status):

Нажимаем Enter, чтобы снова попасть в меню обновления PHP и MySQL, а после четыре раза выбираем пункт «0. Previous screen or exit» и попадаем снова в главное меню окружения. Теперь выберем пункт «10. Background pool tasks» :

И посмотрим статус процесса обновления PHP. Увидели «Finished» — значит, задание успешно завершено, PHP обновлен с 7.4 до 8.0.

Если вам понадобится вернуться к более ранней версии PHP, вы сможете сделать это также в меню «1. Manage servers in the pool» — «8. Update PHP and MySQL» — «2. Downgrade PHP» , выберите пункт с нужной версией PHP, самая низкая доступная версия PHP 5.6 — «1. Downgrade PHP to version 5.6» :

Перед обновлением MySQL-сервера настоятельно рекомендуем сделать бэкапы баз данных, используемых сайтами.
Обновление версии MySQL
Для обновления MySQL-сервера перейдём в меню веб-окружения Битрикс. Выберем пункт «1. Manage servers in the pool» , далее «8. Update PHP and MySQL», затем пункт «3. Upgrade MySQL version» . И наконец пункт «1. Upgrade MySQL to version 8.0» :

Подтвердим обновление аналогично с обновлением PHP — напишем «y». Так же, как и в случае с PHP, появится информация о задаче, выполнение которой мы можем отслеживать, чтобы убедиться, что обновление прошло успешно:

Нажмем Enter , вернемся в меню обновления PHP и MySQL, после трижды выберем пункт «0. Previous screen or exit» , оказавшись в главном меню, проверим выполнение задачи, перейдя в пункт «10. Background pool tasks» :

Обновление MySQL процесс занимает больше времени, чем обновление PHP, поэтому, скорее всего, вы увидите, что задача ещё выполняется — статус «running»:

Подождите 5-15 минут, выпейте чаю и погладьте кота, и снова зайдите в «Background pool tasks» :

Задача перешла в статус «Finished», и MySQL-сервер успешно обновлен до версии 8.0. Ура, товарищи!
Если у вас возникли сложности с обновлением PHP и MySQL на веб-окружении Битрикс, напишите нам в поддержку — мы поможем.
Переход на PHP 8.х в Битрикс управление сайтом и коробочных версиях Битрикс24
В административном интерфейсе коробочных версий продуктов «1С-Битрикс» вы могли заметить такое уведомление: С 01.02.2023 будет ограничена поддержка наших продуктов на PHP версии ниже 8.0. Рекомендуемая версии PHP – 8.1 или выше. Вы используете версию PHP 7.4.33. Пожалуйста, запланируйте обновление PHP или обратитесь в техническую поддержку вашего хостинга.
Почему важно обновить PHP
Версия PHP 7.х объявлена устаревшей и больше не поддерживается, для неё не выпускаются исправления функциональных ошибок и ошибок безопасности. Использование версий PHP ниже 8 крайне не рекомендовано, т.к. сайты с версиями ниже 8 теперь становятся мишенью злоумышленников.
Вы не сможете установить обновления коробочных версий продуктов «1С-Битрикс» для исправления ошибок и получения нового функционала, пока не обновите PHP до минимальной версии 8.0 или рекомендованной 8.1 в своем серверном окружении.
Переход на обновление PHP до минимальной версии 8.0 можно запланировать и перейти с минимальными потерями и/или простоями в работе сайта.
Риски при обновлении версии PHP до 8.х
- Ядро проекта — это сам продукт Битрикс. за ошибки и несовместимости отвечает компания Битрикс. На момент написания статьи ядро битрикса стабилизировано в работе на версии php 8.x
- Сторонние модули, установление из маркетплейса. За эти модули отвечают их авторы, часть решений еще не переведено для совместимости работы на php8 на момент написания статьи
- И наконец, код конкретного проекта
Во всех этих инструментах заложен потенциальный риск перехода на версию 8.x, и если в ядре проекта он минимизирован самим продуктом Битрикс и его тех.поддержкой, то в сторонних модулях могут возникнуть проблемы (например, закончилась лицензия стороннего модуля и для получения обновлений этого модуля нужно продлить лицензию). А что касается конкретного кода отдельного проекта — за него отвечает специалист, технически ведущий данный проект. Таким специалистом нередко является владелец сайта, в этом случае при остуствии соотвествующей компетенции вы можете обратиться к нам.
Наша тех.поддержка производит переход на версию php8, собирая все это воедино и интегрируя все эти три сущности пока проект не заработает на php8 без ошибок.
Как обновить PHP
Обновление версии PHP необходимо произвести поэтапно.
Очень желательно провести эту операцию на тестовой площадке, т.к. можно заранее внести исправления в код, чтобы он работал и на версии php8 и на более низких версиях языка, а также понять, какие из модулей вызывают ошибки и требуют либо обновления, либо их удаления, либо исправления обок в коде. Однако такая предварительная «разведка» занимает больше времени, соответственно, и услуга по переходу на новую версию php8 будет стоить дороже.
Можно проводить обновления и на уже работающем проекте («в бою») без предварительной проверки, но какой бы способ не оказался оптимальным, в любом случае сперва нужно выполнить резервное копирование.
Для обновления нужно обратиться к вашему системному администратору или в техподдержку вашего хостинга, и скорее всего вам потребуется разработчик проекта для исправления ошибок в коде для нового окружения php8.
- Обязательно создайте резервную копию вашей установки. Это может быть как резервная копия средствами продукта, так и полностью всего сервера, например виртуальной машины VMBitrix.
- Обновите ядро и все модули продукта до последних доступных версий в разделе Настройки > Marketplace > Обновление платформы.

- Обновите все сторонние решения из Маркетплейса до последних доступных версий в разделе Настройки > Marketplace > Обновление решений.

- Обновите версию PHP до минимальной 8.0 или рекомендованной 8.1 на своем сервере. Если вы используете виртуальную машину VMBitrix, то обновить PHP можно через меню VMBitrix: 1. Manage servers in the pool — 8. Update PHP and MySQL. Подробнее читайте в отдельном курсе.
Куда обращаться в случае ошибок при обновлении версии PHP до 8.х
- Если после обновлений PHP появятся ошибки в работе стандартных модулей продуктов «1С-Битрикс», то обратитесь в Поддержку24. Также по модулям из Маркетплейса, в названия которых содержатся bitrix.* , нужно обращаться в Поддержку24, например:
bitrix.eshop bitrix.sitecommunity bitrix.sitecorporate bitrix.siteinfoportal bitrix.sitepersonal bitrix.learningtemplates
Также вы можете обратиться и в нашу тех.поддержку, мы производим исправление ошибок для окружения php 8, в том числе и в сторонних модулях.
Примеры частых ошибок и их решения
Возможные причины ошибок после обновления до PHP 8.х:
- До перехода на PHP 8.х не было обновлено ядро и все модули продукта до последних доступных версий в разделе Настройки > Marketplace > Обновление платформы.
- До перехода на PHP 8.х не были уставлены обновления сторонних решений (они в названии имеют точку) на странице Marketplace > Обновление решений.
- Разработчик не обновил модуль для поддержки PHP 8.
Основные действия по исправлению ошибок после обновления PHP до 8.х:
- Вернуться на предыдущую версию PHP 7.x, когда все работало, обновить компоненты системы и сторонние модули, а затем повторно обновить версию PHP до 8.х.
- Если предыдущие действия не исправили ошибки, то обратиться к разработчику модуля – смотрите раздел выше Куда обращаться в случае ошибок.
- Временно отключить модуль с ошибкой, переместив его из директории /bitrix/modules .
- Удалить стороннее решение с ошибкой.
Стоить отметить, что в примерах даны лишь решения ошибок для конкретного модуля. Каждая ошибка должна рассматриваться разработчиком индивидуально.
Примеры ошибок в коде после обновления до PHP 8.х
Версия php8 более строго типизированная и сигнатуры функций языка не терпят передачу в них других типов переменных (в отличие от предыдущих версий php). Чаще всего проблемы с типами возникают в шаблонах компонент (т.е. в коде конкретного проекта, см. пункт про риски)
Здесь приведены наиболее часто встречающиеся ошибки. Эта часть статьи предназначена больше техническим специалистам.
Первым пунктом мы рекомендуем включить логирование ошибок, а также их вывод на экран. Для анализа проекта на ошибки после запуска в случае логов и оперативного исправления в случае их вывода на экран.
Подключиться по FTP/SFTP или зайти в панель хостинга, включить вывод ошибок в файле /bitrix/.settings.php :
'debug' => true,
И включить логирование ошибок:
'log' => array( 'settings' => array( 'file' => '/home/bitrix/__php_error.log', 'log_size' => 1000000, ), ),
Типичная распростаненная ошибка — это вызов события или любого другого метода, не объявленного статическим, через двойное двоеточие (как статический).
Non-static method Super\Functions\CSuperModRep::checkBack() cannot be called statical
[TypeError] call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static method COMP\BXE\EventHandlers::AdminContextMenuShow() cannot be called statically (0).
Исправление в общем случае будет таким: в коде нужно правильно объявить статический метод: