Abbiamo un problema in cui le sessioni terminano dopo poco tempo, 1440 secondi in base alle impostazioni di gc_maxlifetime che sembrano coerenti con il problema. Il PHPSESSID dice che scadrà quando termina la sessione - immagino che il browser si chiuda? Suppongo che prima di allora il GC stia pulendo le sessioni scadute, quindi il PHPSESSID, che sopravvive alla sessione sul server, non corrisponde a nessuna sessione. È giusto? Immagino che venga rilasciato un nuovo cookie PHPSESSID quando la sessione viene ricreata?
L'estensione di sessiongc.maxlifetime è un'opzione, dobbiamo considerare come il sito live gestirà i dati di sessione aggiuntivi sul server. Spostare le sessioni su Redis è un'opzione anche qui.
In alternativa, in aggiunta, è possibile rigenerare la sessione senza perdere i dati della sessione? Ad esempio, ogni volta che l'utente apre una pagina, assumiamo che siano ancora attivi, quindi rigenera la sessione estendendo così la sua durata di vita ai 1440 secondi (o qualsiasi altra cosa estendiamo a). Quindi, anche se abbiamo una sessione di breve durata, la sessione viene distrutta solo quando l'utente rimane inattivo (non fa più caricamenti di pagina) per quel periodo di tempo - quindi se continuo a fare clic ogni 10 minuti, anche io non sarò mai disconnesso .
Vorrei anche notare che abbiamo milioni di visualizzazioni di pagina e qualche migliaio di utenti autenticati in un dato momento. Quindi, la semplice estensione di gc_maxlifetime è qualcosa che dobbiamo seguire con attenzione, credo.