Обработчик сеанса PHP с использованием redis не работает

Обработчик сеанса PHP с использованием redis не работает

Я установил 3 сервера:

192.168.7.147:6379 <-- redis server
192.168.7.162 <-- web server 1 (using phpredis, with local devdomain jttest.com )
192.168.7.218 <-- web server 1 (using phpredis, with local devdomain jttest.com )

оба 192.168.7.162 и 192.168.7.218 с использованиемphp.iniКонфигурация точно такая же, как эта:

extension=redis.so
session.save_handler = redis
session.save_path = tcp://192.168.7.147:6379

также мне пришлось перезапустить Apache и Redis после изменения этих опций, конечно, я могу использовать базовую функцию Redis внутри моего PHP-кода

Проблемы начинаются здесь: я могу войти в систему на 192.168.7.162, используя стандартный вызов сессии PHP (session_start()), но сессия не может быть восстановлена ​​на 192.168.7.218 и наоборот, проще говоря,сессия redis не используется совместно.

внутри 192.168.7.147 мне не удалось получить ключи, связанные с сеансом (имя сеанса PHPREDIS_SESSION), посмотрите на эти результаты, которые я получаю от redis-cli

redis 127.0.0.1:6379> keys *
1) "attribute"
2) "test"
redis 127.0.0.1:6379>

еще одна вещь, на 192.168.7.218php по-прежнему сохраняет сессию, используя файлы, а не redis

[root@centos_wira_devel session]# ll
total 8
-rw------- 1 apache apache 792 Feb 26 16:29 sess_1nm86s67o1o696cgopmrc2hq75
-rw------- 1 apache apache 792 Feb 26 16:41 sess_hhmompfoqjh0emoofppg4v5lp2

для информации, в моем браузере куки для сеанса (оба 192.168.7.162 и 192.168.7.218) сохранены как ['PHPREDIS_SESSION'] = hhmompfoqjh0emoofppg4v5lp2

на странице phpredis я не нашел никаких часто задаваемых вопросов по этому делу (https://github.com/phpredis/phpredis), я не знал, какой шаг я пропустил.

решение1

Настройки сеансов могут быть изменены в других файлах конфигурации, кроме php.ini. Это можно подтвердить, проверив раздел "session" вывода phpinfo(). Если значения в столбце "Local Value" отличаются от значений в столбце "Master Value", необходимо проверить другие файлы.
В частности, в Centos на сервере 192.168.7.162 весьма вероятно, что session.save_handler установлен на "files" в /etc/httpd/conf.d/php.conf .

решение2

Проверьте также конфигурацию php-fpm. После долгого осмотра я нашел это. Если вы работаете в Linux, grepнайдите, где и ваша конфигурация изменена, например, grep -r "save_handler" /etc/это будет текстовый поиск и покажет файлы.

/etc/php-fpm.d/www.conf

Связанный контент