Symfony llama al recolector de basura de PHP en Ubuntu 14.04 incluso cuando session.gc_probability se establece en 0
garbage-collection symfony-2.5 (2)
Lo encontré, supongo que la última versión de Symfony está sobreescribiendo esto de forma predeterminada cuando se usa app_dev.php
. Symfony FrameworkBundle está configurando session.gc_probability = 1
.
A partir de Symfony 3
Sin embargo, algunos sistemas operativos hacen su propio manejo de sesión y establecen la variable session.gc_probability en 0 para detener PHP que realiza la recolección de basura. Es por eso que Symfony ahora sobrescribe este valor a 1.
Si desea utilizar el valor original establecido en su php.ini, agregue la siguiente configuración:
# config.yml
framework:
session:
gc_probability: null
Versiones 2.x anteriores
Para cambiar esto, agregue lo siguiente a su config.yml
framework:
session:
gc_probability: 0
A continuación, borre la caché del desarrollador
php app/console cache:clear
Aquí es donde se muestra la gc_probability
predeterminada en 1
. Por qué no solo leen los ajustes de php.ini no estoy seguro.
http://symfony.com/doc/2.5/reference/configuration/framework.html#gc-probability
Como el título indica por alguna razón, mi aplicación Symfony 2.5 llama al recolector de basura php incluso cuando todos mis archivos php.ini tienen:
session.gc_probability = 0
¿Alguien sabe cómo evitar que esto suceda?
Mensaje de error 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
DESDE PHPINFO ():
Directive Local Value Master Value
session.gc_divisor 1000 1000
session.gc_maxlifetime 86400 86400
session.gc_probability 0 0
Sé que puedo dar el permiso de usuario de www-data a la carpeta /var/lib/php5
o cambiar session.save_path
a algún lugar al que el usuario de www-data
tenga acceso, pero quiero saber por qué este proceso es par llamándose cuando debería estar deshabilitado.
Puede establecer la ruta de las sesiones de forma manual. Ver Symfony doc en el directorio de sesiones .
# app/config/config.yml
framework:
session:
handler_id: session.handler.native_file
save_path: ''%kernel.root_dir%/sessions''