Как исправить ошибку установки Битрикс на 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
- При установке мы получаем ошибку переполнения памяти и прекращение установки модуля
Решение:
- Находим файл /bitrix/modules/main/classes/general/main.php
- Находим строчку 3407
- Заменяем переменную $uniq на
$uniq = md5(uniqid(rand(), true));
- Перезапускаем установку, теперь всё должно работать
Чего делать точно не нужно:
- Увеличивать память в конфигах, как многие советуют. Это не поможет.
- Решение временное, только для установки, только под Windows.
- Не модифицируйте ядро на рабочих проектах, это может нарушить работоспособность при получении обновлений системы
- Под ядром мы понимаем всё, что в папке /bitrix/*, за исключением своих компонентов и шаблонов