[FC2] PHP session.save_path garbage voorkomen

Pagina: 1
Acties:

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Omdat het hier om een systeembeheer vraagstuk gaat .. post ik dit hier.

Ik heb wat webservers draaien in een datacentre. Ze draaien momenteel Fedora Core 2 en de nieuwste Apache / PHP.

Nu staat de PHP session.save_path op /var/lib/php/session (default waarde). Maar ik vraag mij af (en kon hier niet zo 1 2 3 een duidelijk antwoord op vinden wat ik begrijp): loop ik niet het risico dat ik straks 100'den van die session bestandjes in die directory krijg ?

Heeft php / apache een mechanisme , en zo ja .. wat voor een, dat periodiek de rotzooi opruimt ?
Voor /tmp heb je zoiets als een 'tmpwatch' cronjob .. die unused files na zoveel uur delete, maar dit lijkt me niet netjes om voor sessie-bestanden te doen.

Verhelder mijn geest aub !

[ Voor 4% gewijzigd door BoXie op 30-05-2005 13:40 ]


  • DR
  • Registratie: December 2000
  • Niet online

DR

www.php.net/session
session.gc_maxlifetime integer

session.gc_maxlifetime specifies the number of seconds after which data will be seen as 'garbage' and cleaned up.

Note: If you are using the default file-based session handler, your filesystem must keep track of access times (atime). Windows FAT does not so you will have to come up with another way to handle garbage collecting your session if you are stuck with a FAT filesystem or any other fs where atime tracking is not available. Since PHP 4.2.3 it has used mtime (modified date) instead of atime. So, you won't have problems with filesystems where atime tracking is not available.

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Precies .. maar dat snap ik dus niet .. want wie initieert dan dat 'cleanup' proces ? Gebeurt dat pas als de betreffende site weer bekeken wordt door dezelfde gebruiker ? Want PHP heeft geen eigen daemon die bijv. om het uur het zaakje controleert.

  • DR
  • Registratie: December 2000
  • Niet online

DR

En ook dat staat aangegeven, maar garbage cleaning gebeurt dus nadat een client die connect naar een script gaat waarin session_start(); gebruikt wordt.

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Ok dus als ik in mijn php.ini het volgende zet :

code:
1
2
3
session.gc_probability = 1
session.gc_divisor = 500
session.gc_maxlifetime = 1800


Dan betekent dit:

Bij 1 op de 500 keer dat in een willekeurig script een sessie wordt aangeroepen, worden tegelijkertijd alle sessie-files ouder dan 30 minuten uit /var/lib/php/session verwijderd.

??

Is dat correct ? Want dan snap ik het.

  • DR
  • Registratie: December 2000
  • Niet online

DR

1800 seconden is bij mij nog altijd een half uur, maar verder klopt et wel ja :P

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Corrado schreef op maandag 30 mei 2005 @ 16:41:
1800 seconden is bij mij nog altijd een half uur, maar verder klopt et wel ja :P
Ja exquise me .. klopt .. had het even veranderd ... php zet er standaard 1440 in (24 minuten) .. vond ik maar een rare waarde.

Maar mooi .. ik begrijp het nu .. mijn dank is groot en oneindig.
Pagina: 1