Ошибка сессии в PHP7 при логине в менеджере

Столкнулся с ошибкой PHP session_start() при попытке залогиниться в менеджере (PHP 7 + MODX REVO 2.5.0). В результате войти в менеджер не получается — выбрасывает на страницу с формой входа без каких-либо сообщений. Чичтил куки, удалял кэш, очищал таблицу modx_session — результат тот же. Одновременно нет никаких проблем с логином в контекст web через Login. Раньше с авторизацией в менеджере все было в порядке. Перешел на PHP 5.6 авторизация заработала.

Лог PHP:
PHP Warning: session_start(): Session callback expects true/false return value in ...../core/model/modx/modx.class.php on line 2270

В журнале ошибок менеджера:
(ERROR @ ......../core/model/modx/moduser.class.php: 355) PHP warning: session_regenerate_id(): Cannot regenerate session id — session is not active

Кто-нибудь сталкивался с подобной проблемой? Хотелось бы работать на PHP7.
Юрий
20 июня 2016, 18:28
modx.pro
3
4 248
+1

Комментарии: 12

Дмитрий Ломакин
20 июня 2016, 22:10
0
в свое время пробовал с php7.
такая ошибка мешала или другая уже не помню
решилось правкой кода:

файл:
core/model/modx/modmanagerresponse.class.php

функция:
public function instantiateController($className,$getInstanceMethod = 'getInstance') {


было так:
$this->modx->controller = call_user_func_array(array($c,$getInstanceMethod),array($this->modx,$className,$this->action));

делал так:
$this->modx->controller = $c->getInstance($this->modx,$className,$this->action);

додумался не сам. подсказал друг. мне помогло
    Юрий
    20 июня 2016, 22:34
    0
    Спасибо! Не хотелось бы хаки делать, но, видимо, придется.
    Іван Клімчук
    21 июня 2016, 10:49
    0
    То, что ошибка в MODX файле еще не значит, что виноват MODX. Вы уверены, что php7 у вас правильно установлен и сконфигурирован? Мои сайты (с десяток) на MODX уже все работают на php7 и проблем нет.
      Юрий
      21 июня 2016, 11:16
      0
      Я этого не утверждаю. И на PHP 5.6. эта ошибка повторилась. Я поигрался с системными настройками движка, отключал, включал anonymous_sessions. В итоге с включенной опцией anonymous_sessions все заработало. Если ее отключить, то сперва нужно залогинться в контекст web, а потом уже авторизовться в менеджере. Иначе в менеджер не пустит.
        tools
        24 апреля 2017, 21:20
        0
        Иван, поделись, пожалуйста, правильным конфигом для php7 :)
          Іван Клімчук
          25 апреля 2017, 09:57
          0
          Что именно нужно? MODX замечательно работает на PHP7 сам по себе. Возможно какие-то специфические дополнения могут сбоить, но чистый MODX из коробки работает на стандартной конфигурации. Версия 7.1 — тоже полет нормальный.
            Толик
            25 апреля 2017, 10:22
            0
            Проблема есть. Вот issues на github:
            13401
            13073
            Причем эти ошибки валятся во фронтенд и яндекс с гуглом индексируют сайты с такими ошибками.

            Так как никто не правит ошибки сессий — есть временное решение в системных настройках session_handler_class сделать пустым (удалить modSessionHandler).
              Наумов Алексей
              25 апреля 2017, 10:26
              0
              Поддержу, тоже куча ошибок таких, и в админке иногда вижу, и в поисковике куча их видна:


              Появилось все только после переключения сайта на php7.

              Кстати, яндекс видит 43 таких страницы из примерно 12000 в индексе.
                Толик
                25 апреля 2017, 10:27
                0
                Да у меня тоже после переключения сайта на php 7. На других версиях — без ошибок.
                Іван Клімчук
                25 апреля 2017, 10:46
                +2
                Блин, чтобы яндекс не видел, нужно на продакшене выключать показ ошибок и писать все сугубо в лог, как маленькие блин.

                Катательно сессий, то проблема есть, раз issues заведены, но я ничего такого специфического не использовал, чтобы такие ошибки могли проявиться.
          Пётр Молчанов
          21 июня 2016, 10:56
          0
          Может с правами что на папку, куда сессии складываются
            Юрий
            21 июня 2016, 11:11
            0
            Здесь все настроено верно.
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            12