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

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-сервера соединение не проходит. Перерыл весь интернет — ответа не нашел.
  • Вопрос задан
  • 6229 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
jumpeR
@jumpeR Автор вопроса
Наконец-то нашел решение :)
В httpd/error_log нашел интересную запись:

[Tue Apr 09 15:42:42 2013] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0

Выключил SELinux, перезапустил сервак — все заработало.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
subvillion
@subvillion
Возможно разные php.ini для fpm/cgi и для cli версий php
Пропишите в Redis: bind 0.0.0.0
Прокиньте порт 6379 из VirtualBox
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы