Zend не удалось начать сеанс с Redis

1

Я работаю техническим PM для проекта, который использует PHP, Zend и Redis для запуска игры.

Мы делаем службу публикации, и у меня возникла проблема, когда я пытался развернуть сборку, полученную от разработчиков. Я получил эту ошибку, когда попытался запустить сервер.

Неустранимая ошибка: исключить исключение "RedisException" с сообщением "Соединение закрыто" в [нет активного файла]: 0 Трассировка стека: # 0 {main} выбрано [нет активного файла] в строке 0

Я думал, что это было соединение Редиса на первом месте. Но я попробовал telnet это, а также жесткий код PHP Predis для установки/получения данных Redis через простой скрипт программирования сокетов. Он работал.

Поэтому я попытался прокомментировать каждую строку кодов, и я дохожу до строки, которая представляет собой структуру Zend:

    <?php
    ...
    try {
         Zend_Session::start();

         Game_Db_Db::init();       // <-- This is also failed if I commented out above Zend_Session::start();
    } catch (Exception $e) {
         echo $e->getMessage() . '<br>';
         echo "Error";
    }
    ...
    ?>

Я попытался разобраться с другим вопросом и узнал об этом.

Zend_Session/Zend_Auth случайно генерирует сообщение об ошибке ps_files_cleanup_dir: opendir (/var/lib/php5) не удалось: разрешение отклонено (13)

Вышеупомянутый вопрос предполагает, что проблема заключалась в разрешении на запись. Однако мой случай отличается от того, что я использую Redis для session.save_path = "tcp://xx.xx.xxx.xxx: xxxx" вместо локального пути.

Как я уже говорил, я тестировал Redis, чтобы установить/получить ключевое значение. Поэтому я думаю, что проблема может быть другой.

Разработчики пытаются решить эту проблему, но для этой единственной проблемы она давно нуждается.

Если вы можете указать мне какие-либо идеи, где мне следует взглянуть, этого было бы более чем достаточно.

Заранее спасибо.

  • 0
    Вы решили свою проблему? Я сталкиваюсь с тем же самым в контейнере Docker.
Теги:
redis
zend-framework

1 ответ

0

У меня была такая же проблема, в моем случае я сначала проверяю правильность настроек ini в отдельном файле (без Zend Framework).

<?php
var_dump(ini_get("session.save_handler"));
var_dump(ini_get("session.save_path"));

Если php.ini работает корректно, проверьте, есть ли некоторые настройки в Zend Config, см. Http://framework.zend.com/manual/2.0/en/modules/zend.session.global-session-management.html или grep для msgstr "save_path" в проекте Zend.

  • 0
    Я создал ваш небольшой скрипт php, и он показал string(5) "redis" string(20) "tcp://localhost:6379" . Интересно, где искать дальше. У меня такое же сообщение об ошибке, как описано в вопросе выше.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню