Notice: session_start() [function.session-start]: ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13) in ......./script.php line 83
Pas de panique... après m'être penché sur le sujet, je me suis rendu compte que PHP tentait de purger des anciens fichiers de sessions alors qu'il n'en a pas le droit.
Pas de soucis, par défaut, sous ubuntu, le problème est réglé en confiant cette tache a root, toutes les 30 minutes, via une tache programmée.
$ cat /etc/cron.d/php5
# /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/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) -delete
Donc si tu es sous ubuntu, il suffit de gentiment dire a PHP de ne plus s'occuper de cette tache,
# vi /etc/php5/apache2/php.ini
en modifiant la valeur de session.gc_probability = 1 par session.gc_probability = 0 (comme suit) :
; Defines the probability that the 'garbage collection' process is started
; on every session initialization. The probability is calculated by using
; gc_probability/gc_divisor. Where session.gc_probability is the numerator
; and gc_divisor is the denominator in the equation. Setting this value to 1
; when the session.gc_divisor value is 100 will give you approximately a 1% chance
; the gc will run on any give request.
; Default Value: 1
; Development Value: 1
; Production Value: 1
; http://php.net/session.gc-probability
; session.gc_probability = 1
session.gc_probability = 0