Я работаю техническим 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";
}
...
?>
Я попытался разобраться с другим вопросом и узнал об этом.
Вышеупомянутый вопрос предполагает, что проблема заключалась в разрешении на запись. Однако мой случай отличается от того, что я использую Redis для session.save_path = "tcp://xx.xx.xxx.xxx: xxxx" вместо локального пути.
Как я уже говорил, я тестировал Redis, чтобы установить/получить ключевое значение. Поэтому я думаю, что проблема может быть другой.
Разработчики пытаются решить эту проблему, но для этой единственной проблемы она давно нуждается.
Если вы можете указать мне какие-либо идеи, где мне следует взглянуть, этого было бы более чем достаточно.
Заранее спасибо.
У меня была такая же проблема, в моем случае я сначала проверяю правильность настроек 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.
string(5) "redis" string(20) "tcp://localhost:6379"
. Интересно, где искать дальше. У меня такое же сообщение об ошибке, как описано в вопросе выше.