En tant qu'état du titre pour une raison quelconque, mon application Symfony 2.5 appelle le garbage collector php même lorsque tous mes fichiers php.ini ont:
session.gc_probability = 0
Quelqu'un sait-il comment empêcher que cela se produise?
Message d'erreur im obtenant:
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
DE PHPINFO ():
Directive Local Value Master Value
session.gc_divisor 1000 1000
session.gc_maxlifetime 86400 86400
session.gc_probability 0 0
Je sais que je peux simplement donner la permission de l'utilisateur www-data au /var/lib/php5
dossier ou modifiez le session.save_path
vers un endroit où le www-data
l'utilisateur y a déjà accès mais je veux savoir pourquoi ce processus est même appelé alors qu'il devrait être désactivé.
Je l'ai trouvé, je suppose que la dernière version de symfony l'écrase par défaut lors de l'utilisation de app_dev.php
. Symfony FrameworkBundle définit le session.gc_probability = 1
.
Cependant, certains systèmes d'exploitation gèrent leur propre session et définissent la variable session.gc_probability sur 0 pour arrêter PHP faisant le ramasse-miettes. C'est pourquoi Symfony écrase maintenant cette valeur à 1.
Si vous souhaitez utiliser la valeur d'origine définie dans votre php.ini, ajoutez la configuration suivante:
# config.yml
framework:
session:
gc_probability: null
Pour modifier cela, ajoutez ce qui suit à votre config.yml
framework:
session:
gc_probability: 0
Vider ensuite le cache de développement
php app/console cache:clear
C'est là qu'il montre le gc_probability
par défaut à 1
. Pourquoi ils ne se contentent pas de lire les paramètres php.ini, je ne suis pas sûr.
http://symfony.com/doc/2.5/reference/configuration/framework.html#gc-probability
Vous pouvez définir manuellement le chemin des sessions. Voir Doc Symfony sur le répertoire des sessions .
# app/config/config.yml
framework:
session:
handler_id: session.handler.native_file
save_path: '%kernel.root_dir%/sessions'