Я здесь не в порядке. У меня есть определенная группа пользователей наверху, чьи сессии, похоже, истекают совершенно случайно. Дело не только в том, что они покидают сайт сидя на некоторое время, он может истекать, когда они просматривают. Для меня и большинства наших пользователей все работает отлично. Это не проблема с браузером, у нас есть люди из FF и всех версий IE, которые работают нормально, а люди в FF и IE не работают.Неожиданно истекают сессии PHP
Мой gc_maxlifetime
находится в 43200
, а сбор мусора - сумасшедший низкий 1/1000
(не то, что должно иметь значение). Возможно ли, что на сервере есть что-то еще, которое случайно удаляет некоторые из наших сеансов? Что я должен проверить? Это все еще не объясняет, почему затрагивается только эта конкретная группа.
У меня есть несколько параметров сеанса, которые отличаются от значений по умолчанию:
session.gc_maxlifetime = 43200
session.gc_divisor = 1000
session.save_path = /var/lib/php/session
session.use_only_cookies = Off
session.bug_compat_42 = Off
Первые три я не беспокоюсь об этом, но может последние два быть причиной такого поведения? Я на самом деле никогда не отправляю файлы cookie через URL-адрес, поэтому у меня нет веских причин отключить use_only_cookies. У меня нет никаких гарантий того, что неудачники, которые сделали это приложение до того, как я сюда попал, не использовали вещь bug_compat_42
для установки переменных сеанса, но опять же, я ожидал бы, что проблема с этим будет менее случайной.
Edit:
При дальнейшем исследовании, я обнаружил, что сессия не уничтожается вовсе, а конечный пользователь получает новый идентификатор сеанса. Старый сеанс по-прежнему остается неповрежденным на сервере, но новый он случайно запускается во время просмотра.
Одна из двух вещей происходит: файл сессии на сервере удаляется, или куки сессии истекает. Я попытаюсь изолировать случай того или иного события, а затем работать оттуда. –
Я решил, что это не удаление сеанса. Как я могу проверить, истекает ли файл cookie? –