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, grep
busque 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