Tempo limite da sessão PHP

2

Estou tendo alguns problemas com o tempo limite da sessão em um aplicativo PHP, suspeito que o tempo limite seja dado pelo código, mas prefiro verificar primeiro a infraestrutura. O aplicativo que estou executando é puro PHP 5.6 no Apache atrás de um LB clássico na AWS. Devs me disse que eles não manipulam o cookie da sessão no código, então eu verifiquei o meu arquivo apache2 / php.ini. Este é o único:

[Session]
session.save_handler = files

session.use_strict_mode = 0

session.use_cookies = 1

session.cookie_secure = On

session.use_only_cookies = 1

session.name = PHPSESSID

session.auto_start = 0

session.cookie_lifetime = 0

session.cookie_path = /

session.cookie_domain =

session.cookie_httponly = 1

session.serialize_handler = php

session.gc_probability = 0

session.gc_divisor = 1000

session.gc_maxlifetime = 2400

session.referer_check =

session.cache_limiter = nocache

session.cache_expire = 180

session.use_trans_sid = 0

session.hash_function = 0

session.hash_bits_per_character = 5

url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"

Esta é a seção principal [PHP] para o caso:

[PHP]
engine = On

short_open_tag = On

asp_tags = Off

precision = 14

output_buffering = 4096

zlib.output_compression = Off

implicit_flush = Off

unserialize_callback_func =

serialize_precision = 17

disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,

disable_classes =

zend.enable_gc = On

expose_php = Off

max_execution_time = 30

max_input_time = 60

memory_limit = 128M

error_reporting = E_ALL

display_errors = On

display_startup_errors = Off

log_errors = On

log_errors_max_len = 1024

ignore_repeated_errors = Off

ignore_repeated_source = Off

report_memleaks = On

track_errors = Off

html_errors = On

variables_order = "GPCS"

request_order = "GP"

register_argc_argv = Off


auto_globals_jit = On

post_max_size = 800M

auto_prepend_file =

auto_append_file =

default_mimetype = "text/html"

default_charset = "UTF-8"


doc_root =

user_dir =

enable_dl = Off

file_uploads = On

upload_max_filesize = 750M

max_file_uploads = 20

allow_url_fopen = On

allow_url_include = Off

default_socket_timeout = 60

Tanto quanto eu estou preocupado, não há absolutamente nada na infra-estrutura que possa impor um tempo limite. Estou certo?

Eu verifiquei também os cookies no meu navegador e estou recebendo estes parâmetros:

AWSELB PHPSESSID

Ambos os cookies têm isso em Expires / Max Age - > 1969-12-31T23: 59: 59.000Z

Eu tenho que verificar outra coisa? Alguma pista?

Obrigado antecipadamente ..

    
por nikolaigauss 24.07.2018 / 02:32

2 respostas

0

Gotcha! Aparentemente há um arquivo cron.d chamado php, que é essencialmente um script de traço (/ bin / sh) que executa a cada 30 minutos e limpa as sessões php, este script avalia tanto o apache2 quanto o cli configs modificando ambos os valores no GC vida máxima que fez o truque.

    
por 27.07.2018 / 01:50
0

Para lidar corretamente com a sessão, dê uma olhada: link

Lá você encontrará estas variáveis:

  1. session.gc_probability
  2. session.gc_divisor
  3. session.gc_maxlifetime
por 27.07.2018 / 07:56