Сроки PHP заканчиваются слишком рано

Я запускаю веб-сайт с сервером nginx с PHP Fastcgi на VPS. Я попытался настроить php.ini (в / etc / php5 / cgi), чтобы сеанс PHP длился более 3 дней (259200 секунд), но он не работал, и мои сеансы php не длились более одного часа.

Моя текущая конфигурация сеанса в php.ini:

session.use_cookies = 1 session.use_only_cookies = 1 session.name = PHPSESSID session.auto_start = 0 session.cookie_lifetime = 259200 session.cookie_path = / session.cookie_domain = session.cookie_httponly = session.serialize_handler = php session.gc_probability = 1 session.gc_divisor = 1000 session.gc_maxlifetime = 259200 session.bug_compat_42 = Off session.bug_compat_warn = Off session.referer_check = session.entropy_length = 0 session.cache_limiter = nocache session.cache_expire = 259200 session.use_trans_sid = 0 session.hash_function = 0 

Что может быть проблемой здесь?

Это немного напоминает Ubuntu или Debian на сервере. Если я правильно помню, где-то есть cronjob (установлен либо php5, либо php5-общий пакет), который чаще всего очищает ваш каталог сеансов.

Я бы рекомендовал вам настроить сеансы для сохранения в другом месте (по умолчанию). Отрегулируйте session.save_path и убедитесь, что cronjob не пуст.

Cronjob где-то похож на /etc/cron.d/php – чтобы быть уверенным, запустите dpkg -L php5 или dpkg -L php5-common . Предполагая, что вы находитесь на Ubuntu (или Debian), это должно показать вам местоположение всех установленных файлов.

Чтобы помочь вам отлаживать, вы можете проверить текущий параметр, который задание PHP cron «видит», выполнив:

/ USR / Библиотека / php5 / maxlifetime

Скрипт maxlifetime ищет все ваши файлы php.ini для session.gc_maxlifetime и использует наибольшее значение. Значение напечатано в минутах.