Поскольку состояние заголовка по какой-то причине мое приложение Symfony 2.5 вызывает сборщик мусора php, даже если у всех моих файлов php.ini есть:
session.gc_probability = 0
Кто-нибудь знает, как предотвратить это?
Сообщение об ошибке im получение:
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
Я знаю, что могу просто предоставить пользователю www-data разрешение на доступ к папке /var/lib/php5
или изменить session.save_path
где-то, к которому пользователь www-data
имеет доступ, но я хочу знать, почему этот процесс даже вызов, когда он должен быть отключен.
Я нашел его, я думаю, последняя версия Symfony перезаписывает это по умолчанию при использовании app_dev.php
. Symfony FrameworkBundle устанавливает session.gc_probability = 1
.
Однако некоторые операционные системы выполняют свою собственную обработку сеанса и устанавливают переменную session.gc_probability равным 0, чтобы остановить сборку мусора PHP. Вот почему Symfony теперь перезаписывает это значение до 1.
Если вы хотите использовать исходное значение, установленное в php.ini, добавьте следующую конфигурацию:
# config.yml framework: session: gc_probability: null
Чтобы изменить это, добавьте следующее в свой config.yml
framework: session: gc_probability: 0
Затем очистите кэш разработчика
php app/console cache:clear
Здесь показано, что gc_probability
умолчанию имеет значение 1
. Почему они просто не читают из настроек php.ini, я не уверен.
http://symfony.com/doc/2.5/reference/configuration/framework.html#gc-probability
Вы можете задать путь для сеансов вручную. См. Раздел Symfony doc в каталоге сессий .
# app/config/config.yml framework: session: handler_id: session.handler.native_file save_path: '%kernel.root_dir%/sessions'