fix: PHP sessions → Redis correcto (session.save_path con host real)

php.ini NO expande variables de entorno, estaba hardcodeado 'tcp://redis:6379'.
PHP intentaba conectar al host inexistente 'redis' en cada request →
timeout 10s en session_start() → todos los scripts tardaban 10-13s.

Solución:
- entrypoint.sh reescribe session.save_path con el host/password real al inicio
- php.ini actualizado con placeholder (sobreescrito por entrypoint de todas formas)
This commit is contained in:
Lizandro Guarnizo
2026-03-12 17:13:11 -05:00
parent d6d312f72f
commit 729474b138
2 changed files with 11 additions and 2 deletions
+9
View File
@@ -7,6 +7,15 @@ echo "🚀 Iniciando WhatsApp Bot Manager..."
# Redis es gestionado por Coolify (externo) — no esperar, la app conecta cuando necesita
echo "️ Redis externo (${REDIS_HOST:-no configurado}), omitiendo verificación de conectividad..."
# Configurar session.save_path con host/password real de Redis
# php.ini no expande variables de entorno, por eso se hace aquí
REDIS_SESSION_PATH="tcp://${REDIS_HOST:-127.0.0.1}:${REDIS_PORT:-6379}"
if [ -n "${REDIS_PASSWORD}" ]; then
REDIS_SESSION_PATH="${REDIS_SESSION_PATH}?auth=${REDIS_PASSWORD}"
fi
sed -i "s|session.save_path.*|session.save_path = \"${REDIS_SESSION_PATH}\"|" /usr/local/etc/php/conf.d/custom.ini
echo "✅ PHP sessions → Redis: ${REDIS_HOST:-127.0.0.1}:${REDIS_PORT:-6379}"
# Esperar a que MySQL esté disponible
if [ "${DB_HOST}" = "mysql" ] || [ "${DB_HOST}" = "db" ]; then
echo "⏳ Esperando MySQL local..."
+2 -2
View File
@@ -26,9 +26,9 @@ disable_functions =
[curl]
curl.cainfo = /etc/ssl/certs/ca-certificates.crt
; Session
; Session — usar variables de entorno para Redis (Coolify las inyecta)
session.save_handler = redis
session.save_path = "tcp://redis:6379"
session.save_path = "tcp://${REDIS_HOST}:${REDIS_PORT}?auth=${REDIS_PASSWORD}"
session.gc_maxlifetime = 3600
session.cookie_httponly = 1
session.use_strict_mode = 1