Задать вопрос

Почему не устанавливается 1с битрикс на php 8?

Пытаюсь поставить на openserver, недавно уже ставил все работало, но там php требовался от 7 версии, сейчас скачал новый установщик (php скрипт), теперь там php версия от 8, появляется эта ошибка в самом начале установки:

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

В php.ini memory_limit ставил на -1 и просто увеличивал, не помогает, что делать?
  • Вопрос задан
  • 4562 просмотра
Подписаться 5 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 6
@vladpy27449
У меня аналогичная проблема. Только ошибка памяти ушла после описанных выше методах.
Теперь установка зависает и сжирает гигов 20 -30)
Пробовал скачать виртуалку готовую, так там php версии 7.4 и тоже ругается, что версия низкая) Но там после апгрейда php все устанавливается

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Вот тут решили проблему, сам попробовал все ок dev.1c-bitrix.ru/community/forums/messages/forum6/...
Ответ написан
@Vladislav1804vV
При попытке получить рандомную строку через Main\Security\Random::getString установщик сначала пытается это сделать силами библиотеки openssl, но когда её определить не удается, он идет по другому сценарию, при котором проваливается в метод CMain::getServerUniqID. Здесь и кроется проблема, в этом методе опять требуется рандомная строка. Причем если раньше использовали вызов md5(uniqid(rand(), true)), то сейчас вызывают опять Main\Security\Random::getString, как итог скрипт зацикливается и помирает, когда использует всю доступную ему память. Чтобы решить проблему в файле bitrix/modules/main/classes/general/main.php на строке 3407 заменяем $uniq = Main\Security\Random::getString(32); на $uniq = md5(uniqid(rand(), true));
Ответ написан
@aleks211180
Вот здесь четко и по делу описано как сделать (без всякого трепа про подоконные поделки от тех, кто пользуется плинтусными). Проверено не один раз.
https://dimos.ru/tech/kak-ispravit-oshibku-ustanov...
Ответ написан
Комментировать
Adamos
@Adamos
Перед установкой Битрикса на какой бы то ни было сервер (а особенно всякое ...) необходимо запустить скрипт Битрикса, проверяющий соответствие настроек сервера его требованиям.
https://dev.1c-bitrix.ru/download/scripts/bitrix_s...
Впору это в ЧаВо писать, каждый месяц даю эту ссылку...
Ответ написан
VladimirARS
@VladimirARS
Такая же ситуация, 8 июня ставил через установщик на Open Server (версия 5.4.3, PHP8), все нормально. Сегодня эта же ошибка при установке:
Повторите установку текущего шага. В случае повторения ошибки пропустите шаг.
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 262144 bytes) in C:\OSPanel\domains\..

Попробовал сейчас на обычный хостинг (PHP8) установить скриптом, все нормально установилось, без ошибок.
Ответ написан
Комментировать
bziker
@bziker
linux sysadmin
1. битрикс чистая установка встает без правок кода только на пхп 8.1
Кто-то писал про докер - там вероятно в коде что то поправлено
2. если memory_limit увеличили, смотрете в коде конструкции типа ini_set("memory_limit", "16M");
3. Плагины могут отжирать память, если что то установлено - надо попробовать выключить
4. а физически столько памяти сервер может дать скрипту?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы