Как перейти на Bitrix с PHP 7.3 на версию 8.x, если Bitrix отключил доступ к обновлениям ядра для старых версий PHP?

Здравствуйте! Я не программист и мне нужна ваша помощь в обновлении PHP с версии 7.3.31 до 8.x. Когда я пытаюсь установить версию 8.1.6 на ISP, сайт не открывается и отображается белый экран с пустым исходным кодом. В логах я вижу следующие ошибки: 

[Sat Feb 08 15:53:24.677627 2025] [php:error] [pid 32126] [client 57.141.0.24:37836] PHP Fatal error:  $GLOBALS can only be modified using the $GLOBALS[$name] = $value syntax in /var/www/lider/data/www/lider.ws/bitrix/modules/main/include/urlrewrite.php on line 90 

[Sat Feb 08 15:53:25.830126 2025] [php:error] [pid 32134] [client 178.206.232.217:37846] PHP Fatal error:  $GLOBALS can only be modified using the $GLOBALS[$name] = $value syntax in /var/www/lider/data/www/lider.ws/bitrix/modules/main/tools.php on line 4048 

[Sat Feb 08 15:53:26.619781 2025] [php:error] [pid 32141] [client 178.206.232.217:37854] PHP Fatal error:  $GLOBALS can only be modified using the $GLOBALS[$name] = $value syntax in /var/www/lider/data/www/lider.ws/bitrix/modules/main/tools.php on line 4048 

[Sat Feb 08 15:53:27.182235 2025] [php:error] [pid 32153] [client 178.206.232.217:37856] PHP Fatal error:  $GLOBALS can only be modified using the $GLOBALS[$name] = $value syntax in /var/www/lider/data/www/lider.ws/bitrix/modules/main/tools.php on line 4048 

[Sat Feb 08 15:53:27.331244 2025] [php:error] [pid 32155] [client 52.22.64.232:37860] PHP Fatal error:  $GLOBALS can only be modified using the $GLOBALS[$name] = $value syntax in /var/www/lider/data/www/lider.ws/bitrix/modules/main/include/urlrewrite.php on line 90 

Не могли бы вы помочь разобраться с этими ошибками?
  • 8 февраля 2025 г. 14:44
Ответы на вопрос 1
Для перехода на PHP 8.x с Bitrix и устранения ошибок, с которыми вы столкнулись, вам нужно выполнить несколько шагов:

### 1. **Убедитесь в совместимости вашей версии Bitrix с PHP 8.x**

Первое, что нужно сделать, — убедиться, что ваша версия Bitrix поддерживает PHP 8.x. Это можно проверить на официальном сайте Bitrix или в документации. Если ваша версия устарела, возможно, вам придется её обновить (или даже мигрировать на новую версию).

### 2. **Обновите Bitrix**

Если ваша версия Bitrix не поддерживает PHP 8.x, вам необходимо обновить её. Убедитесь, что у вас есть резервная копия вашего сайта и базы данных перед выполнением обновления. В случае, если у вас отключен доступ к обновлениям, рассмотрите возможность временного понижения версии PHP к 7.4, что может дать вам доступ к обновлениям.

### 3. **Анализ и исправление кода**

Ошибки, которые вы видите, связаны с тем, что в PHP 8.x произошли изменения в том, как можно манипулировать массивом `$GLOBALS`. 

#### Пример ошибок:
- **PHP Fatal error:  $GLOBALS can only be modified using the $GLOBALS[$name] = $value syntax**

Это означает, что в коде используется некорректная попытка модификации переменной `$GLOBALS`. Проверьте строки кода, на которые указывают ошибки, и исправьте их в соответствии с синтаксисом, предложенным в сообщении об ошибке. Например, вместо:
```php
$GLOBALS['var'] = 'value'; // это нормально
$GLOBALS = array('var' => 'value'); // это ошибка
```

Если у вас нет опыта в PHP, рекомендуется привлекать специалиста, который поможет исправить код.

### 4. **Проверка используемых модулей и компонентов**

Также обратите внимание на сторонние модули и компоненты, которые могут не поддерживать PHP 8.x. Иногда решения могут быть в обновлении или замене этих модулей.

### 5. **Логи ошибок**

Проверяйте логи ошибок после внесения изменений, чтобы понять, сохраняются ли проблемы. Они могут дать дополнительную информацию для диагностики.

### 6. **Информационные ресурсы**

Используйте ресурсы сообщества Bitrix, такие как форумы или группы в социальных сетях, для получения помощи. Возможно, другие пользователи столкнулись с аналогичными проблемами и могут предложить решения.

### Заключение

Обновление PHP с 7.3 до 8.x может требовать значительных изменений в коде Bitrix и сторонних компонентов. Придерживайтесь процесса поэтапного обновления, предварительно создайте резервные копии, и не стесняйтесь обращаться за помощью, если сталкиваетесь с трудностями.
Похожие вопросы