Я разрабатываю проект в ZendFramework 3. Сеанс неожиданно истекает на рабочем сервере. Он неожиданно истекает, когда он простаивает в течение некоторого времени, очень мало, скажем, 10 минут. На моей локальной машине разработки этого не происходило. Я получаю тот же session_id() до и после истечения сеанса. Итак, похоже, что на сервере что-то происходит. Ниже приведены конфигурации сервера и zend. Его значения по умолчанию, и я ничего не менял.
Настройки сеанса в INI-файле
session.gc_maxlifetime = 1440
session.gc_divisor = 100
session.save_path =
session.use_only_cookies = On
session.gc_probability = 1
Ценности Zend Framework 3
session_cookie_expire = 180 Minutes
session_get_cookie_params = [lifetime] => 3600
[path] => /
[domain] =>
[secure] =>
[httponly] =>
Детали сеанса. Эти значения одинаковы до и после истечения срока годности.
session_id() : c12345666ae7abcd7894dd1234567eeded
session_name() : PHPSESSID
Решилось установкой session.save_path = "/ path". Я терял сеанс каждый раз при перезапуске apache, ИТ-команда часто перезапускала его для некоторых исправлений.






Я предполагаю, что ваши среды разработки и производства не являются клонами 1 на 1 (например, с Docker или Vagrant). Вы проверили конфиг
php.iniна сервере? А конфиг Apache или nginx для PHP? Имейте в виду, что на вашем сервере может быть несколько экземпляров PHP, поэтому обязательно проверьтеphp phpinfo()в командной строке, а также добавьте<?php phpinfo(); exit;в качестве первой строки в файлеpublic/index.php. Запустите и сравните результаты обоих. Обновите обсуждаемые результаты. Также сравните результаты предыдущего с вашей средой разработки, также обновите эти результаты, чтобы задать вопрос. (Пожалуйста, опубликуйте только различия).