Задать вопрос

Redis connect возвращает false

Хабравчане, помогайте, нереальный ступор)

Проблема

В коде проекта пишу:

$p = new Redis();
$res = $p->connect("127.0.0.1", 6379);
var_dump($res);


Результат: false

Если после connect`a вставить:

$p->setex("test", 60, 123);


то возвращается exception: Redis server went away

Redis-server запущен, в redis.conf прописано:
daemonize yes
bind 127.0.0.1
port 6379

Если в консоле пишу:
redis-cli ping
PONG


redis-cli
redis set dada 123
redis get dada
123


Все работает.

Создаю файл test.php с кодом:

<?php
$p = new Redis();
var_dump($p->connect("127.0.0.1", 6379));
$p->setex("dada", 100, "dada");
var_dump($p->get("dada"));
?>


Результат: dada — все отлично работает.

запускаю через браузер: site.dev/test.php
не работает, connect возвращает false.

В iptables прописал порт 6379, отрубал вообще файерволл — результата ноль.

Немного про систему:
ОС: CentOS 6.4 запущенная в virtualbox, гостевая ОС — Windows 7
Веб-сервер: nginx с apache на фронт-енде (nginx прослушивает 80 порт, apache висит на 8080 порте)
PHP: 5.3.23
Redis 2.6
phpredis 2.2.2

В общем такая беда, из консоли работа с Redis идет на ура, а на уровне web-сервера соединение не проходит. Перерыл весь интернет — ответа не нашел.
  • Вопрос задан
  • 6231 просмотр
Подписаться 3 Оценить Комментировать
Ответ пользователя subvillion К ответам на вопрос (2)
subvillion
@subvillion
Возможно разные php.ini для fpm/cgi и для cli версий php
Пропишите в Redis: bind 0.0.0.0
Прокиньте порт 6379 из VirtualBox
Ответ написан