Страница 1 из 1

Не работает авторизация CMS Bitrix под Nginx + PHP8.1 + MariaDB-10.4

Добавлено: 06 ноя 2023, 09:43
UsualUser
Всех приветствую!
Есть проблема, которую не могу решить уже несколько дней. PHP не создает сессии для входа в админку битрикса. Обычные сессии создаются нормально. Также при первой установке есть автологин и я могу заходить в админку (сессия создается), но больше войти не возможно.

Все совета отсюда были сделаны https://dev.1c-bitrix.ru/learning/cours ... ON_ID=2167

При установке скрипт не продвигался дальше и проиcходила утечка памяти без прогресса, поэтому воспользовался советом отсюда https://dev.1c-bitrix.ru/support/forum/ ... sage732902

OSPanel запускаю от администратора, поэтому проблем с правами не должно быть

Кто-то еще ставил битрикс локально? Как вы это сделали?

Re: Не работает авторизация CMS Bitrix под Nginx + PHP8.1 + MariaDB-10.4

Добавлено: 06 ноя 2023, 13:21
UsualUser
Проблема решена. На время установки модуля я поменял функцию, как было сказано тут https://dev.1c-bitrix.ru/support/forum/ ... sage732902

Опишу что я сделал для потомков, кто хочет поставить битрикс на Open Server

/bitrix/modules/main/lib/security/random.php
/**
 * Returns random (if possible) string for a given charset list.
 *
 * @param int $length Result string length.
 * @param string $charsetList Charset list, must be ASCII.
 * @return string
 */
public static function getStringByCharsets($length, $charsetList)
{
       // Временно возвращаем "свою" рандомную строку
       $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
       $randstring = '';
       for ($i = 0; $i < 10; $i++) {
           $randstring = $characters[rand(0, strlen($characters))];
       }
       return $randstring; // Конец

    $charsetVariants = strlen($charsetList);
    $randomSequence = static::getBytes($length);

    $result = '';
    for ($i = 0; $i < $length; $i++)
    {
       $randomNumber = ord($randomSequence[$i]);
       $result .= $charsetList[$randomNumber % $charsetVariants];
    }
    return $result;
}
Далее, перед созданием администратора, меняем функцию обратно в изначальный вид и задаем пароль, после этого все работает нормально и авторизация в админ панель проходит

Спасибо ребятам со Stack Overflow, которые навели на мысль в чем может быть дело