Я в процессе перехода от Apache в пользу nginx из-за более низкого потребления ресурсов. Я установил сервер Ubuntu с установленным стеком LEMP. После переноса всех моих приложений (3 приложения CakePHP 2.0.5, 1 WordPress install) все работает отлично, за исключением одного – куки Cake внезапно исчезают, когда браузер закрыт.
Я создал очень простую тестовую страницу PHP, чтобы проверить, работают ли файлы cookie вообще, и они на самом деле работают, а не в Cake. WordPress также не имеет никаких проблем, вспоминая меня, когда я закрываю браузер.
Используя инструменты разработчика Chrome, я проверял, установлен ли файл cookie, и это, как вы можете видеть ниже:
Дата истечения срока действия даже устанавливается в месяц в будущем, поэтому я не понимаю, почему они не живут за закрытым браузером. Как только я запускаю мой браузер и перехожу к моему приложению, cookie теперь ушел:
Одна вещь, которую я заметил, это то, что с моим приложением, запущенным на Apache, cookie CAKEPHP
вы видите выше, имеет то же значение до и после закрытия. Однако на сервере nginx этот файл cookie имеет другое значение каждый раз, когда я закрываю и повторно открываю свой браузер.
Я думал, что это может быть связано с сеансами, поэтому я проверил настройки сеанса в core.php
и установил, что PHP выполняет обработку сеанса:
Configure::write('Session', array( 'defaults' => 'php' ));
Я проверил каталог /tmp
и файлы сеанса создаются. Я попытался изменить обработчик сеанса на cake
чтобы Cake сохранил сеансы в каталоге своего app/tmp/sessions
, и пока сеансы будут успешно созданы в этом каталоге, мои файлы cookie все равно будут потеряны при закрытии браузера.
Кто-нибудь испытал это поведение между nginx и Cake раньше или какие-либо идеи относительно того, почему это может произойти?