Назад | Перейти на главную страницу

Ищете особенности работы сборки мусора сеанса PHP

В PHP есть несколько настроек сеанса, которые контролируют вероятность того, что произойдет сборка мусора (то есть удаление просроченных сеансов).

Мой вопрос: применима ли эта вероятность ко всем запущенным потокам Apache на всех виртуальных хостах на любом сервере Apache?

Например:

Я пытаюсь оценить, нужно ли мне настроить параметр gc_probability для данного VirtualHost, для всего сервера или чего-то еще.

Если вероятность установлена ​​на 1/100, означает ли это, что любой поток Apache, который запускает процесс PHP, попадает в пул процессов, которые могут запускать gc?

Если этот процесс касается сеанса [session_start ()], тогда да, он может запустить сборку мусора.

Если вам нужны разные виртуальные хосты для разных сборок мусора и сеансов, вам следует использовать session.save_path возможность установить разные пути для каждого виртуального хоста. Вы можете сделать это в конфигурации вашего виртуального хоста apache с помощью директивы вроде `php_value session.save_path" /srv/www/www.example.org/sessions ". Если у вас работает несколько разных приложений с разными требованиями к сеансу, вам может потребоваться установить разные пути и GC.

Честно говоря, сборка мусора сеанса PHP не так уж и хороша. Возможно, вам лучше полностью отключить его и использовать скрипт, запускаемый из cron, для периодической очистки старых сеансов. Или другой альтернативой, требующей поддержки в приложении PHP, было бы сохранение ваших сеансов в базе данных.

Если вы размещаете материалы для внешних сторон, вы почти наверняка захотите создать отдельный каталог сеанса для каждого виртуального хоста.