Файлы сеанса Laravel не удаляются из папки framework / session

Я нахожусь на общем хосте (OVH pro), используя Laravel 5.2 на работе (PHP 7.0.5).

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

мой config/session.php файл настроен правильно:

'driver' => 'file',
'lifetime' => 120,
'lottery' => [2, 100],

И мои папки storage, storage/framework, storage/framework/sessions все установлены с разрешением 0755.

Я также отменяю php.ini поместив эти 2 строки в верхней части config/session.php

ini_set('session.gc_probability', '5');
ini_set('session.gc_divisor', '100');

Вроде нормально работает от чего phpinfo() возвращает:
Информация о сессиях PHP

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

Редактировать: Мои сеансы работают нормально, я имею в виду, что для каждого посетителя создается только один файл. Проблема заключается только в том, что файлы сеанса не очищаются даже с разрешением 777.


Даже когда я установил сеансовую лотерею Laravel на 100/100, файлы все равно не удаляются:

    /*
|--------------------------------------------------------------------------
| Session Sweeping Lottery
|--------------------------------------------------------------------------
|
| Some session drivers must manually sweep their storage location to get
| rid of old sessions from storage. Here are the chances that it will
| happen on a given request. By default, the odds are 2 out of 100.
|
*/

'lottery' => [100, 100],

РЕДАКТИРОВАТЬ: Особенности хостинга OVH:
Я использую мультисайты в OVH, а папки, содержащие каждый сайт, размещаются по маршруту моего хоста OVH, а не по умолчанию www папка.

Я сделал это по соображениям безопасности, потому что www папка общедоступна через mynickname.cluster005.ovh.net и я не хочу, чтобы какой-либо из моих сайтов был общедоступным

mynickname.cluster005.ovh.net/site1

mynickname.cluster005.ovh.net/site2

(www\site1, www\site2…).

Так что я думал, что, возможно, только файлы, расположенные внутри www папка для записи, а может и не та наружная (в корне)? Это объясняет, пока мои файлы не удаляются. Сегодня вечером я проверю, удаляются ли файлы при их www\site1\storage\sessions,

2

Решение

Там какой-то шаг, который вы можете найти, что проблема в первую очередь

  1. Убедитесь, что идентификатор сессии зафиксирован на каждой странице (идентификатор сеанса эха)

если идентификатор сессии был изменен на каждой странице, вам нужно проверить конфигурацию сессии
настройка домена правильная.

если идентификатор сессии не изменился, возможно, вам нужно изменить расположение папки хранения на 777.

Я надеюсь, что это может помочь вам.

0

Другие решения

Если вы используете haproxyрассмотреть этот ответ:

Файлы сессий могут быть созданы haproxy's http health checks,

  1. Проверьте ваши журналы веб-доступа к фиксированному интервалу доступа.

111.11.111.1 — — [28 / Jul / 2016: 10: 40: 30 -0400] 200 «GET / HTTP / 1.0» 4 «-» «-» «-«

111.11.111.1 — — [28 / Jul / 2016: 10: 40: 32 -0400] 200 «GET / HTTP / 1.0» 4 «-» «-» «-«

111.11.111.1 — — [28 / Jul / 2016: 10: 40: 34 -0400] 200 «GET / HTTP / 1.0» 4 «-» «-» «-«

  1. Обновить option httpchk GET / указать на некоторые routes что вы можете установить драйвер сеанса array на ваше haproxy.cfg,

  2. добавить Config::set('session.driver', 'array'); строка для отключения создания файлов сессий.


Ссылка:

0

По вопросам рекламы [email protected]