Code Igniter è uno dei tanti framework PHP disponibili e prima dell’avvento di laravel era abbastanza utilizzato.
Vengo al dunque, Code Igniter ha diversi moduli per la gestione delle sessioni e se si usa il driver “files”, ovvero l’uso dei classici files in /var/lib/session attiva un fastidioso problema su Debian. Si, perché su Debian la cancellazione dei files di sessione non è demandata a PHP, ma viene fatta con un apposito script in /usr/lib/php/sessionclean che viene invocato da /etc/cron.d/php
Lo script sessionclean provvede a cancellare tutti i files nella directory con i files di sessione e che si chiamando sess_*.
Il problema a cui accennavo risiede nel fatto che code igniter, di default, chiama i file di sessione con il nome ci_session_* e questo fa si che i files di sessione non vengano mai cancellati dallo script sessionclean.
Per ovviare, si possono seguire due strade:
- modificare il file php.ini per aumentare session.gc_probability (es a 200), oppure
- modificare il file sessionclean ed includere anche i files che si chiamano ci_sess_* tra quelli da cancellare, sostituendo, verso la fine del file:
find -O3 "$save_path/" -ignore_readdir_race -depth -mindepth 1 -name 'sess_*' -type f -cmin "+$gc_maxlifetime" -delete
con
find -O3 "$save_path/" -ignore_readdir_race -depth -mindepth 1 \( -name "sess_*" -o -name "ci_session*" \) -type f -cmin "+$gc_maxlifetime" -delete
enjoy!
Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui
Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂
Commenta