Laravel Laravel хранение сессий в файлах

membrilius

Новичок
Привет!

Мне достался сайт на Laravel 3.2, сессии хранятся в файлах, все лежит на хостинге у которого довольно жесткий лимит на количество файлов.

Вообщем беда в том, что роботы ходят по сайту и конечно не записывают куки, в следствии чего при каждом запросе им отправляется новая кука и создает новый файл сессии. Через сутки у меня набежало 100 000 файлов и лимит был исчерпан.

Такая схема могла бы жить, есть время хранения сессии было минут 30, но мне нужно хранить доступы на сайт, хотя бы дня 3.

Я конечно перенес все в memcache, но просто интересно, может я что-то упустил.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
membrilius, зачем запускать сессию для неавторизованного юзера, или того, кому ничего хранить не надо в процессе работы с сайтом?
 

membrilius

Новичок
Так, laravel при запуске так и так создает её, даже если я ничего не пишу в неё. Даже нативный механизм сессий в PHP при "session_start()" создает файл, и не важно будем мы в него писать что-то или нет, куку с ключом он же должен к чему-то привязать. Тем более там есть такая штука как "Session::token()" в некоторых местах он нужен.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
membrilius, вопрос был в "не стартовать сессию, если она тебе не нужна". Session::token() если нужен, вот его надо и использовать в только нужных местах)

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

membrilius

Новичок
memcache хоть перезаписывает сам если места нет.

session_start я просто привел в пример, в "laravel/laravel.php" прописано "Session::save();". Тем самым он запускает механизм сессии, создает куку и файл для сессии. Я не видел, что-бы из "laravel/laravel.php" что-то куда-то переносили. Покране мере доступ к данным сессии мы должны иметь из любого угла приложения, хотя бы для авторизации.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
c0dex, ты на его версию ларавеля то глянь, оттуда и проблема.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
флоппик, ну вцелом да, динозавр, миграция если она понадобится будет попоболькой.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
И что с того? Год для софта - это более чем много. Когда версии выходят каждые неделю-две. Я просто предложил вариант в какую строну пилить. Мне, но ты можешь не согласиться, кажется, что пускать сессию для любого зашедшего на сайт - глупость.
 

membrilius

Новичок
c0dex, я же объяснил, если в конфиге ларавела указать, что мне нужен механиз сессии, то при каждом запуске приложения он будет обращаться к сессии, если её нет то создавать её. Это задано в недрах фреймворка. Я пока не знаю как это в 4 сделано, но я думаю так же... сейчас компостер поставлю, посмотрю.
 

membrilius

Новичок
Как и ожидалось, Laravel 4.2, заходим к настройки браузера, отключаем куки, обновляем 10 раз странице приветствия, смотрим "\laravel\app\storage\sessions", видим 10 файлов сессий!

Не знаю, только мне кажется что-то не так или у всех по миллиону файлов в хранилище?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
membrilius, кхм, тут ты прав, просто я не хранил изначально данные в файлах, у меня они либо в мемкеше, либо в бд/куках. Там есть настройки как раз под все это, знаешь. Гугление дало не весьма прямые результаты решений.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
я бы просто задал Crawl-delay в роботсах, и забил бы, все равно лишние файлы сессий по умолчанию убиваются лотереей с шансом 1:50 по умолчанию.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
peon, это стандартная работа фреймворка, бага нет
 

membrilius

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

Лотерея 2%, но удаляются файлы те у которых истекло время последнего изменения. Что бы пользователи не вылетали каждые 30 минут, время жизни сессии установлено в 3 дня, что бы покране мере после выходных вернутся и быть не разлогиненным, это обычная практика нормальных сайтов. За 3 дня файлов может быть пару сотен тысяч. И удаление не произойдет, т.к. скрипт скорее всего зависнет делая grab и проверяя filemtime для каждого файла.
 

AmdY

Пью пиво
Команда форума
даже в 4-й версии вроде нет ленивых сессий, ларавел активно их юзает для всяких флешей и валидаций.
скорее всего нужно ручками патчить.
заменить старт на isset($_COOKIE[session_name()]) session_start();
ну и соотвественно при get-set проверять и стартовать.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
[URL='http://phpclub.ru/talk/members/amdy.4850/']AmdY, [/URL]имхо не надо патчить его. Надо отдавать себе отчет, почему в его случае файлы - не то решение, что надо. Но вцелом же, хотелось бы видеть сессии с возможностью отрубания.
 

Breeze

goshogun
Команда форума
Партнер клуба
membrilius, на три дня проще "тихий" сервис "запомнить меня сделать"
 
Сверху