El controlador de sesión PHP que usa Redis no funciona

El controlador de sesión PHP que usa Redis no funciona

Estaba configurando 3 servidores:

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 )

ambos de 192.168.7.162 y 192.168.7.218 usandophp.iniconfiguración exactamente como estas:

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

También reinicié Apache y Redis después de modificar estas opciones, por supuesto, puedo usar la función básica de Redis dentro de mi código PHP.

El problema comienza aquí, puedo iniciar sesión en 192.168.7.162 usando la llamada de sesión estándar de PHP (session_start()) pero la sesión no se puede recuperar en 192.168.7.218 y viceversa, en palabras simples,sesión de redis no compartida.

Dentro de 192.168.7.147, no pude obtener claves relacionadas con la sesión (el nombre de la sesión es PHPREDIS_SESSION), mira estos resultados que obtengo de redis-cli

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

una cosa más, al 192.168.7.218php todavía guarda la sesión usando archivos, sin usar 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

para información, en mi navegador, cookie de sesión (ambas de 192.168.7.162 y 192.168.7.218) guardadas como ['PHPREDIS_SESSION'] = hhmompfoqjh0emoofppg4v5lp2

en la página phpredis no encontré ninguna pregunta frecuente sobre este caso (https://github.com/phpredis/phpredis), no sabía dónde me faltaba el paso.

Respuesta1

La configuración de las sesiones puede modificarse en otros archivos de configuración, excepto php.ini. Esto se puede confirmar revisando la sección "sesión" de la salida de phpinfo(). Si los valores de la columna "Valor local" son diferentes de los de la columna "Valor maestro", se deben inspeccionar otros archivos.
Específicamente en Centos, en el servidor 192.168.7.162, es muy probable que tenga session.save_handler configurado en "archivos", en /etc/httpd/conf.d/php.conf.

Respuesta2

Verifique también la configuración de php-fpm. Después de una larga inspección encontré esto. Si está en Linux, grepbusque dónde y se modificó su configuración, por ejemplo, grep -r "save_handler" /etc/realizará una búsqueda de texto y revelará los archivos.

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

información relacionada