Сессии CakePHP 2 завершаются внезапно/преждевременно

У меня есть несколько веб-сайтов CakePHP 2.5.1, работающих в производственной среде LAMP с PHP 5.3.29 и MySQL 5.6 (я знаю, это старый материал). Они используют Auth, чтобы защитить доступ к ним только для зарегистрированных пользователей. У этих веб-сайтов не было проблем в течение многих лет.

Недавно мы начали получать жалобы от пользователей на то, что их выгоняют с этих сайтов, хотя, казалось бы, этого быть не должно, однажды это случилось даже со мной. Я имею в виду получение типичного сообщения, которое мы показываем, когда кто-то пытается получить доступ к защищенной странице после истечения срока действия его сеанса и попадает на страницу входа. Только то, что эти сеансы истекают быстрее, чем должны. Мы используем сеансы базы данных для этих сайтов, вот конфиг:

Configure::write('Session', array(
                                    'defaults' => 'database',
                                    'handler' => array('model' => 'cake_sessions'),
                                    'timeout' => 60
                                    ));

Configure::write('Security.level', 'low');

Самое странное, что после того, как вас выгнали, если вы снова войдете в систему и попытаетесь получить доступ к странице, к которой вы не обращались в предыдущем сеансе, вас снова выкинет на страницу входа. Но если вы получаете доступ к странице, к которой вы обращались до того, как вас выгнали в предыдущем сеансе, вы можете получить к ней доступ без проблем. Я предполагаю, что это может быть связано с кешированием, но я никогда раньше не видел, чтобы что-то подобное происходило на этих сайтах, поэтому я решил упомянуть об этом на всякий случай.

Код этих сайтов не менялся годами. Единственное изменение заключается в том, что на сервере, на котором расположены эти веб-сайты, была изменена некоторая конфигурация PHP, где они включили PHP-FPM, и это действительно так. похоже, что эти проблемы начались примерно в одно и то же время, но я не знаю, как установить связь между этим и сеансами. Также я не думаю, что мы можем отключить это.

Я занимался устранением неполадок, печатал переменные сеанса при использовании этих сайтов, просматривал таблицу базы данных, которая обрабатывает сеансы, проверял идентификаторы сеансов, тайм-ауты, файлы cookie и т. д., и, насколько я могу судить, все выглядит нормально. Сеансы автоматически обновляются, когда я перехожу на другие страницы, они показывают правильную продолжительность, файлы cookie Cakephp показывают правильные идентификаторы сеанса и т. д. Мне не удалось воспроизвести проблему или найти что-то неправильное в коде, базе данных, файлах cookie или Сеанс PHP. Но, возможно, я ищу не в тех местах.

На самом деле у меня есть 2 вопроса:

  1. Кто-нибудь знает, что может происходить здесь с сессиями? Что может вызвать преждевременное завершение сеанса?
  2. Может ли кто-нибудь предложить мне способ устранения этой неполадки? Как-то повторить проблему?

person Albert    schedule 06.04.2021    source источник
comment
Я сочувствую тебе! У меня было то же самое, прежде чем я выпотрошил свои приложения Cake2. Вот что вы могли бы изучить stackoverflow. com/questions/9203320/ ... это не совсем ваша проблема, но вы можете попробовать кое-что еще. Нам пришлось вернуть наш Cake2 PHP-FPM обратно в Apache mod PHP.   -  person hppycoder    schedule 06.04.2021
comment
@hppycoder, спасибо! Вы попробовали предложенные ответы, и это все еще не сработало для вас? Я вижу, можно ли отключить PHP-FPM, если это будет проще.   -  person Albert    schedule 06.04.2021
comment
Я зашел ТАК поздно и не увидел ответов. Мы вытащили установку FPM после того, как производство сломалось, и мы не могли понять, почему. Мы переместили один из наших стеков в FPM, чтобы повысить параллелизм, но с другим приложением у нас возникли проблемы.   -  person hppycoder    schedule 07.04.2021
comment
@hppycoder хорошо, спасибо, я ценю ваш вклад   -  person Albert    schedule 07.04.2021