Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: сесии долго не удаляется после закритии браузера
Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011 Откуда: тифилис
Помог: 5 раз(а)
привет всем.
после того когда ползовател авторизуется на саите, в папке tmp создается ид сесии да, тоест фаил такого вида: sess_f11bc54b134a98020eefab7ee233576e478c69d7
а когда ползовател закроит браузер, сесия остается в папке, я читал что сборшик мусора удалит неактивних сессии из папки tmp через 20-30 минут, ето время зависимо от настроики сервера да? а я сматрию и сессии остается в папке через 3 часа и болше, после закритии браузера, почему так долга ани живут? тестирую на локалном - денвере, я настроики не изменил. скажите пожалуиста как нужно изменит настроики так, что после закрития браузера сесия уничтожилос например после 10 минут,
и где мне смотрет, сеичас сколко время устоановлена? тоест сборшики мусора через сколко времии удаляет сесии из папки tmp ?
Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011 Откуда: от верблюда)
Помог: 28 раз(а)
в скрипте создания сессии указываешь время её жизни
прочти мануал
----- Всё гениальное - просто
И ещё проще, если ты - индиго
Stierus
Отправлено: 12 Октября, 2011 - 14:02:51
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
сборщик мусора не запускается по расписанию, думаю, это то, на что вам нужно обратить внимание.
dadli
Отправлено: 12 Октября, 2011 - 14:56:15
Посетитель
Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011 Откуда: тифилис
Помог: 5 раз(а)
illy
об етом ви говорите? например: ini_set("session.gc_maxlifetime",600);
если да то, ето не помагает.
Stierus
да кожется ви прав, смотрел я phpinfo(); и там написано (в разделе session)
Directive | Local Value | Master Value
-------------------------------- -------------------------
..............
session.gc_maxlifetime | 1440 | 1440
..................
ето значит что после закритии браузера, сесия должен уничтожен в течении 24 минут, а он жив - болше три часа.
Цитата:
сборщик мусора не запускается по расписанию,
скажите пожалуиста что может причина етого ?
Stierus
Отправлено: 12 Октября, 2011 - 15:25:38
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
это не по какой-то причине, это его нормальное поведение. Как работает сборщик мусора? Когда вызывается скрипт, с какой-то вероятностью, пых запустит и сборщика мусора (не помню вероятность запуска, вроде, настраиваемо). Так вот если не запускать пых - то и сборщик мусора запускаться не будет. Иными словами : если вы 1 раз запустили скрипт, который создал сессию, а после этого не запуская скрипты ждете, когда удалится файл - вы этого не дождетесь, что бы что-то удалилось - нужно запускать скрипты (пхп процесс), который с определенной вероятностью запустит механизм сборки мусора. А время жизни сессий, которые вы выставляете - этот порог, который необходим для удаления файла. Тоесть сборщик мусора будет проходить по всем файлам сессий и удалять только те, которые созданы ранее указанного времени.
Из всего этого вытекает еще 1 интересный нюанс: Вы запускаете скрипты редко, у вас время жизни сессии стоит 10 секунд, но вероятность запуска сборщика мусора стоит 0.0001% ... как вы поняли, через 10 секунд сессионный файл не исчезнет.
EuGen
Отправлено: 12 Октября, 2011 - 15:28:34
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Stierus пишет:
как вы поняли, через 20 секунд сессионный файл не исчезне
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Stierus
Отправлено: 12 Октября, 2011 - 16:17:13
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
EuGen, вы действительно советуете это использовать на раюбочих сайтах, в продакшн системах?
dadli
Отправлено: 12 Октября, 2011 - 16:56:26
Посетитель
Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011 Откуда: тифилис
Помог: 5 раз(а)
ок Stierus спасибо балшое
спасибо всем
dadli
Отправлено: 13 Октября, 2011 - 11:33:24
Посетитель
Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011 Откуда: тифилис
Помог: 5 раз(а)
я продолжал поиск на етой теме, потому что я заинтересовался, как вычисляется вероятност запуска сборшика мусора и нашёл его. в разделе session (из phpinfo();) есть такие веши:
Directive | Local Value | Master Value
-------------------------------- ------
session.gc_divisor | 100 | 100
session.gc_probability | 1 | 1
вероятност вычисляется так: session.gc_probability / session.gc_divisor получается 1 к 100
тоест если ми хотим при любом запуске "включит" сборшик мусора надо у session.gc_probability установить значение 100
получим 100 k 100
и кстати, там (на хабре) автор говорит что он изменяеть значение через функцию: ini_set("session.gc_probability",число)
а ini_set() нужен во всех пхп фаилах да? как думаете не удобно настроить через .htaccess? тоесть написать в фаиле .htaccess php_value session.gc_probability число
LIME
Отправлено: 13 Октября, 2011 - 11:38:36
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
dadli а нафига?
сервер скучает? просит занять чем-нибудь? ))
dadli
Отправлено: 13 Октября, 2011 - 12:36:27
Посетитель
Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011 Откуда: тифилис
Помог: 5 раз(а)
LIME
Цитата:
сервер скучает?
ну ето зависимо на класс-e (кочество) саитов, которие лежит на етом сервере
что касается "нафига", конечно если всо останется по умалчаню, все ровно будет работать, сборшик мусора очистит старие сесси как нибуд, просто я заинтересовался именно по какои причини: иногда работает сборшик, иногда нет и написал ето (тоест предыдущи) сообшение: может бить комуто ето интересует.
а я не знаю, как лучше настроит php.ini: через ini_set() или через .htaccess? кажется через .htaccess удобнее, но не знаю, может каким то причином ini_set() лучшее?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.