He estado sacando mi cabello tratando de descubrir por qué mis sesiones se terminan/matan/destruyen a los 30 minutos. Bueno, parece que los sistemas basados en Debian tienen una ejecución cron especial que ignora todas las configuraciones de php.ini y apache y elimina cualquier sesión inactiva en 30 minutos.Sistemas basados en Debian Sesión eliminada a los 30 minutos en cron especial, ¿cómo sobrescribir?
El camino cron: /etc/cron.d/php5
Dentro del cron:
# /etc/cron.d/php5: crontab fragment for php5
# This purges session files older than X, where X is defined in seconds
# as the largest value of session.gc_maxlifetime from all your php.ini
# files, or 24 minutes if not defined. See /usr/lib/php5/maxlifetime
# Look for and purge old sessions every 30 minutes
09,39 * * * * root [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -n 200 -r -0 rm
no estoy mal en la configuración y la configuración de los hosts, pero no soy un administrador de sistemas. ¿Podría alguien ayudarme a anular/editar/cambiar/reconfigurar esto para que pueda establecer el valor más? Creo que 3 horas sería bueno, pero me gustaría entender los cambios así que si alguien más arriba quiere hacer que el tiempo de la sesión sea más corto/más largo, confío en cómo configurar el cambio.
Gracias a ninguna ayuda penetración en este
EDIT: Adición de código /usr/lib/php5/maxlifetime
#!/bin/sh -e
max=1440
for ini in /etc/php5/*/php.ini; do
cur=$(sed -n -e 's/^[[:space:]]*session.gc_maxlifetime[[:space:]]*=[[:space:]]*\([0-9]\+\).*$/\1/p' $ini 2>/dev/null || true);
[ -z "$cur" ] && cur=0
[ "$cur" -gt "$max" ] && max=$cur
done
echo $(($max/60))
exit 0
por lo que parece ser la búsqueda de todos los archivos php.ini, se encuentra la el mayor valor, lo compara con 1440 (que es 24 minutos).
Éstos son los archivos php.ini
/etc/php5/apache2/php.ini
session.gc_maxlifetime = 1440
/etc/php5/cgi/php.ini
session.gc_maxlifetime = 1440
/etc/php5/cli/php.ini
session.gc_maxlifetime = 1440
pero ¿por qué mi sesión de escritura de los matan a los 30 minutos y no 24 minutos?
EDIT # 2: CRON que se ejecuta cada 30 minutos es por lo que parece que la sesión se mata a intervalos de 30 minutos. Pero también podría ser de 24 a 54 minutos, FYI
también mirando hacia el código en: /usr/lib/php5/maxlifetime
que está tomando el valor más alto y durante mi prueba de que estaba tratando de bajar el umbral para acelerar la condición.
Parece que solo necesito aumentar uno en los archivos php.ini a más de una prueba de prueba de una hora.
Eso es lo que pensé también, pero ese archivo busca los archivos php.ini (todos) y encuentra el mayor valor en el segundo (que es 1440 o 24 minutos). Pero mi sesión no excede el tiempo de espera hasta 30 minutos y no puedo entender por qué –
El trabajo cron solo se ejecuta cada 30 minutos, por lo que su sesión puede ser válida de 24 a 54 minutos. –
mierda, acaba de tener un momento DUH. Gracias. Creo que esto me ayudará a establecer una sesión más larga. –