2015-11-13 2 views
1

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

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

Fatal error: Uncaught exception 'RedisException' with message 'Connection closed' in [no active file]:0 Stack trace: #0 {main} thrown in [no active file] on line 0

Я думал, что это соединение Redis на первом месте. Но я попробовал 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 randomly throws Error Message ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13)

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

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

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

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

Благодарим заранее.

+0

Вы решили свою проблему? Я столкнулся с тем же самым в контейнере Docker. – Stephane

ответ

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 для «save_path» в проекте Zend.

+0

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

Смежные вопросы