Потеря сеанса Symfony2 на одной конкретной машине

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

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

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

У кого-нибудь есть ключ?

ОБНОВЛЕНИЕ:

Оказывается, LIIPImagineBundle каким-то образом ломает мою установку. Пока я не создаю доступную для записи папку (/media/cache) для пакета, все в порядке (кроме изображений). Как только создаю папку, опять все ломается. Кто-нибудь знает, почему это может быть?


person Thomas K    schedule 07.11.2012    source источник
comment
iS другие сайты или проекты, работающие на вашем сервере разработки без потери сеанса   -  person Gowri    schedule 09.11.2012
comment
Теперь я вообще не могу авторизоваться на своей локальной машине. Когда я пытаюсь зарегистрироваться, я получаю сообщение об ошибке недопустимого токена csrf. Тот же код в производстве, без проблем. Я также установил другую версию php, но безуспешно.   -  person Thomas K    schedule 09.11.2012
comment
Пожалуйста, опубликуйте свои config.yml и config_dev.yml (очевидно, с скрытой личной информацией). Я предполагаю, что есть что-то, связывающее ваши сеансы с IP-адресом или доменом, что вызывает эту проблему. Также попробуйте полностью удалить папку app/cache/dev. Использование консольной команды для очистки кеша не всегда надежно.   -  person james_t    schedule 09.11.2012
comment
Я только что сделал новую установку sf, включая FOSUserBundle, и все отлично работает. Так что, похоже, это связано с моим проектом на этой машине.   -  person Thomas K    schedule 12.11.2012


Ответы (2)


Я предполагаю, что параметры сервера сеанса вашего сервера имеют низкое значение. Вам нужно увеличить значение этого параметра.

рассмотрите возможность проверки ниже значения параметра

  • session.gc-maxlifetime
  • session.cache_expire

Как увеличить значение:

ini_set('session.gc_maxlifetime', 60*60*22); //22h

Дополнительные обсуждения и пояснения можно найти здесь

person Gowri    schedule 09.11.2012

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

person Jovan Perovic    schedule 10.11.2012
comment
Я почти уверен, что теперь у вас есть проблемы с блокировкой, потому что хранилище сеансов базы данных, скорее всего, не блокирует однажды прочитанную информацию о сеансе, пока она не будет записана обратно. Но вам может повезти, что у вас нет параллельных вызовов для одного и того же идентификатора сеанса. - person Sven; 14.11.2012
comment
Да, это тоже была моя мысль. В любом случае, с тех пор, как я перешел на сеансы на основе базы данных, все пошло лучше :) - person Jovan Perovic; 14.11.2012