Sistemas baseados em Debian Sessão interrompida aos 30 minutos em cron especial, como substituir?
Tenho arrancado meu cabelo tentando descobrir por que minhas sessões estão sendo encerradas / mortas / destruídas em 30 minutos. Bem, parece que os sistemas baseados no Debian têm um cron especial em execução que ignora todas as configurações do php.ini e apache e mata qualquer sessão ociosa em 30 minutos.
O caminho cron:/etc/cron.d/php5
Dentro do 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
Não sou ruim em configurar e configurar hosts, mas não sou sysAdmin. Alguém poderia me ajudar a substituir / editar / alterar / reconfigurar isso para que eu possa definir o valor por mais tempo? Eu acho que 3 horas seria bom, mas eu gostaria de entender as alterações, portanto, se alguém mais alto quiser tornar o tempo da sessão mais curto / mais longo, eu documento como configurar a alteração.
Graças a qualquer ajuda de insight sobre isso
EDIT: Adicionando / usr / lib / php5 / maxlifetime código
#!/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
então parece estar pesquisando todos os arquivos php.ini, encontra o maior valor e o compara a 1440 (que é de 24 minutos).
Aqui estão os arquivos 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
mas por que minha sessão de script é interrompida em 30 minutos e não em 24 minutos?
EDIT # 2: CRON em execução a cada 30 minutos é o motivo pelo qual a sessão parece ser interrompida em intervalos de 30 minutos. Mas também pode levar de 24 a 54 minutos, para sua informação.
Também olhando o código em:/usr/lib/php5/maxlifetime
está assumindo o valor mais alto e, durante meus testes, eu estava tentando diminuir o limite para acelerar a condição.
Parece que eu só preciso aumentar um dos arquivos php.ini para mais de uma hora de teste.