PHP Session Garbace Collection on debian

Discussion in 'Developers' Forum' started by Croydon, May 21, 2012.

  1. Croydon

    Croydon Member Howtoforge Staff Moderator HowtoForge Supporter ISPConfig Developer

    PHP Session Garbage Collection on debian

    Hi,

    it has been a while since my last post :)

    I came across a problem with php session files on debian some time ago. On debian the default config of PHP disables session garbage collection. This is because the default session path is not writeable by the webserver.
    The default session path is cleaned up by a cron job.

    I wrote a blog post about this (only german):
    http://www.soeren-hentzschel.at/tec.../17/php-session-garbage-collector-und-debian/


    ISPConfig sets up a different session path for the webs - that is a good solution - but:
    If the PHP software (script) running doesn't set the garbage collection the session files are never deleted. On a highly visited page this can be a problem.
    The problem is even bigger if you store your session data inside a database or even worse when storing inside a MEMORY table.

    As mentioned in the blog post i set
    @ini_set('session.gc_probability', 1);
    in all my scripts to re-enable garbage collection.

    I would recommend that ispconfig sets this variable for all websites in the vhosts file just for the case that the default setting is "disabled" as it is on debian.
     
    Last edited: May 21, 2012
  2. till

    till Super Moderator Howtoforge Staff HowtoForge Supporter ISPConfig Developer

    ISPConfig is cleaning up the session directory automatically with a cronjob, similar to the system session directory. If you use different session storage systems, you shopuld take care about that of course.
     
  3. Croydon

    Croydon Member Howtoforge Staff Moderator HowtoForge Supporter ISPConfig Developer

    It does? Even for each web?

    I have > 35.000 session files in /var/www/clients/client1/web6/tmp/, most of them from the beginning of april.


    Edit: I am sorry - it seems an update from 3.0.4 to current version did the trick :( Thought this one would be on current version already.
     
    Last edited: May 21, 2012

Share This Page