As the title state for some reason my Symfony 2.5 Application is calling the php garbage collector even when all of my php.ini files have:
session.gc_probability = 0
Does anyone know how to prevent this from happening?
Error message im getting:
Notice: SessionHandler::gc(): ps_files_cleanup_dir: opendir(/var/lib/php5)
failed: Permission denied (13) in /<path-to-my-site>/var/cache/dev/classes.php line 432
FROM PHPINFO():
Directive Local Value Master Value
session.gc_divisor 1000 1000
session.gc_maxlifetime 86400 86400
session.gc_probability 0 0
I know that i can just give the www-data user permission to the /var/lib/php5
folder or change the session.save_path
to somewhere that the www-data
user has access to already but i want to know why this process is even getting called when it should be disabled.
You can set path for sessions manually. See Symfony doc on sessions directory.
I found it, I guess the latest version of symfony is overwriting this by default when using the
app_dev.php
. The Symfony FrameworkBundle is setting thesession.gc_probability = 1
.As of Symfony 3
However, some operating systems do their own session handling and set the session.gc_probability variable to 0 to stop PHP doing garbage collection. That's why Symfony now overwrites this value to 1.
If you wish to use the original value set in your php.ini, add the following configuration:
https://symfony.com/doc/current/components/http_foundation/session_configuration.html#configuring-garbage-collection
Previous 2.x versions
To change this add the following to your
config.yml
Then clear the dev cache
This is where it shows the
gc_probability
defaulted to1
. Why they dont just read from the php.ini settings im not sure.http://symfony.com/doc/2.5/reference/configuration/framework.html#gc-probability