05.10.2023

Как исправить ошибку установки Битрикс на OpenServer c php8

Что имеем:
  • Bitrix+OpenServer+PHP8+Windows (при другой связке этой ошибки может не быть)
Ошибка установки:

Внимание! На данном шаге произошла ошибка установки продукта.

Повторите установку текущего шага. В случае повторения ошибки пропустите шаг.
Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 262144 bytes) in D:\OS23\domains\test1\bitrix\modules\main\lib\security\random.php on line 117 Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 262144 bytes) in Unknown on line 0




Проблема:
  • Обнаружил, что на момент 2023/10, дистрибутив Битрикса не позволяет произвести установку на OpenServer, так как новый дистрибутив требует php8
  • При установке мы получаем ошибку переполнения памяти и прекращение установки модуля

Решение:
  1. Находим файл /bitrix/modules/main/classes/general/main.php
  2. Находим строчку 3407
  3. Заменяем переменную $uniq на

    $uniq = md5(uniqid(rand(), true));

  4. Перезапускаем установку, теперь всё должно работать



Чего делать точно не нужно:
  • Увеличивать память в конфигах, как многие советуют. Это не поможет.
Обратите внимание, важно!
  • Решение временное, только для установки, только под Windows.
  • Не модифицируйте ядро на рабочих проектах, это может нарушить работоспособность при получении обновлений системы
  • Под ядром мы понимаем всё, что в папке /bitrix/*, за исключением своих компонентов и шаблонов

Автор проекта: Dimos
Заметки программиста, дизайнера, геймдев-мастера.
Делюсь опытом.