Debian/Ubuntu PHP5 errore del garbage collector

Dopo l’ultimo aggiornamento a PHP 5.3.2 mi è capitato ogni tanto di incorrere nel seguente errore generato dalla funzione session_start():

session_start() [function.session-start]: ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13)

La directory /var/lib/php5 è la directory di default dove php salva i file delle sessioni e dove il garbage collector deve passare per eliminare le sessioni scadute, il problema sta nei permessi impostati a drwx-wx-wt che impedisce al garbage collector di php di poter entrare a cancellare i files.

I mantainer del pacchetto php per Debian e Ubuntu hanno disabilitato il garbage collector da php.ini impostando session.gc_probability = 0 e hanno creato uno script in cron che si occupa della pulizia dei file di sessione.

Avendo aggiornato php ho mantenuto la configurazione precedente non facendo aggiornare il php.ini durante l’installazione e

cercando su google ho scoperto che è un problema di configurazione di php, aggiornando la versione ho mantenuto il vecchio php.ini dove il session.gc_probability non era impostato e per default è impostato a 1, quindi per risolvere questo problema è bastato modificare php.ini (per installazioni di default si trova in /etc/php5/apache2/php.ini o comunque si trova creando una pagina con il seguente codice <?php phpinfo();?>) aggiungendo la riga session.gc_probability = 0 o modificando quella esistente se presente, e riavviando apache.

Condividi:
  • Facebook
  • Twitter
  • Google Bookmarks
  • Digg
  • StumbleUpon
  • del.icio.us
  • Yahoo! Buzz
  • Print
  • email

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Connect with Facebook