Per Magento CMS e simili (che non stanno ripulendo le vecchie sessioni), utilizzo semplicemente cron job basati sulle impostazioni di php.ini.
PHP5 / Ubuntu 14.04 / Debian
La configurazione del sistema cron.d per php5 non pulisce Magento ./var/session (o qualsiasi altra cosa oltre alla cartella di sessione predefinita (/ var / lib / php5 per Ubuntu e / var / lib / php5 / sessioni o / tmp / per la maggior parte degli altri Linux dists).
Ma puoi ancora usare "sessionclean" e "maxlifetime" secondo il cron predefinito del sistema php5 / Debian:
Esempio che puoi provare dalla riga di comando:
# sudo /usr/lib/php5/sessionclean /var/www/{yoursite}/var/session $(/usr/lib/php5/maxlifetime)
Quindi incorporalo in un crontab di sistema / root o in un crontab di un utente che ha i permessi di lettura / scrittura per i file di sessione:
$ sudo crontab -e
Aggiungi questo se vuoi che assomigli al sistema php cron:
20,40 * * * * [ -x /usr/lib/php5/maxlifetime ] && [ -x /usr/lib/php5/sessionclean ] && [ -d /var/www/*/var/session ] && /usr/lib/php5/sessionclean /var/www/{yoursite}/var/session $(/usr/lib/php5/maxlifetime)
oppure - poiché sappiamo che esistono quei file / directory:
20,40 * * * * /usr/lib/php5/sessionclean /var/www/*/var/session $(/usr/lib/php5/maxlifetime)
Ora ho un numero gestibile di sessioni ed è tenuto pulito tramite Garbage Collection / Durata predefinita tramite le impostazioni di php.ini (cli).
(È possibile lasciare il carattere jolly sopra o sostituirlo con sitename.)
EDIT (PHP7 / Ubuntu 16.xx / Debian):
Lo script 'sessionclean' è stato modificato e lo script maxlifetime è stato rimosso. Per il lavoro cron system / php ora è uno script. Non è più possibile utilizzarlo poiché le chiamate ai file ora sono statiche per lo script.
Il vecchio script sessionclean php5 può ancora funzionare per te se il sistema non sta pulendo. Quello che puoi fare è prendere il vecchio pacchetto Debian php5 ed estrarlo sessionclean
da esso. Oppure puoi semplicemente copiarlo nella tua area degli script (dando le autorizzazioni / proprietà proprie / var / www / (site)):
#!/bin/sh
# first find all used files and touch them (hope it's not massive amount of files)
[ -x /usr/bin/lsof ] && /usr/bin/lsof -w -l +d "${1}" | awk -- '{ if (NR > 1) { print $9; } }' | xargs -i touch -c {}
# find all files older then maxlifetime
find "${1}" -depth -mindepth 1 -maxdepth 1 -ignore_readdir_race -type f -cmin "+${2}" -delete
Consiglio anche di rinominarlo, quindi non è confuso con il nuovo cronjob php 'sessionclean'. È quindi possibile collegare il proprio numero "maxlifetime" in questo modo:
20,40 * * * * /home/-username-/scripts/MySessionClean /var/www/*/var/session 61
(61 è l'età di esempio (in minuti) e 'MySessionClean' è lo script php5 rinominato scaricato o copiato dall'alto).
In questo modo evitiamo completamente le chiamate php.ini / env.
(EDIT 13DEC2016: aggiornato l'archivio DEBIAN ARCHIVE REPO)