проблем със запазването на сесия на /tmp ..

vasilev

Registered
здравейте ,
днес видях че в error лога има доста грешки от тип :

[17-Jan-2013 02:53:39] PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: open(/tmp/sess_c1811d48b97888b0423c8edf4daadad7, O_RDWR) failed: No space left on device (28) in ..../pages/modules/facebook.php on line 49


тоест не може да създаде сесия .
не съм гуру на тема сесия и затова въпросът ми е винаги ли се запазват сесиите във файл в дадена директория ?
може ли това да се промени - да не се запазват ..


промених session.save_path да е в моя папка но това не отговаря на въпросът ми :)
трябва лид а се слага session_destroy(); накрая на всеки php или не, защото със затварянето на браузъра не се маха файла със сесията .
 
No space left on device = Буквален превод : Няма остало място на диска.
Проблема се явява в това ,че е препълнено и не може да създаде нова сесия.
Ето и няколко решения :
1 ) Обади се на хостинг компанята и им съобщи ,че /tmp е препълнена.
2 ) Влез в Cpanel -> File Manager - > влез в папакта /tmp ако имаш доста неща , можеш да ги изтриеш ( не е препоръчително )
3 ) Да промениш директорията.
Създай в /public_html една папка session_protected със права 0777,
добави .htaccess със съдържание :

Код:
order deny, allow
deny from all
allow from 127.0.0.1

В PHP кода или в началото на всеки файл , който ползва session преди session_start();
постави :
Код:
session_save_path(dirname($_SERVER['DOCUMENT_ROOT']).'/public_html/session_protected');
 
записването на сесии оправих но като се затвори браузъра те си остават .
след logout си има session_destroy Но много хора просто затварят браузъра и тогава е въпроса какво се прави :)
четох че има някаква настройка в php.ini за garbage collection Но не ми е ясно дали нея тряба да добавя или нещо друго .


аз лесно мога да направя един скрипт който да трие файлове по стари от 10 дена примерно или 5 но дали няма по нормален начин :)
 
добре , добавих ги защото не знам глобалния файл какви стойности има понеже съм на хостинг , но хората затова са ми дали мой php.ini в който да настройвам :)

session.gc_maxlifetime="1800";
session.gc_divisor="50";
session.gc_probability="1";


сега да очаквам че след 30 мин сесиите от папката ще се изтрият?
защото гледам че има от 15:24 тоест повече от час и си стоят .
 
vasilev каза:
добре , добавих ги защото не знам глобалния файл какви стойности има понеже съм на хостинг , но хората затова са ми дали мой php.ini в който да настройвам :)

session.gc_maxlifetime="1800";
session.gc_divisor="50";
session.gc_probability="1";


сега да очаквам че след 30 мин сесиите от папката ще се изтрият?
защото гледам че има от 15:24 тоест повече от час и си стоят .
session.gc_probability="1";
Или трябва да е 0 или 1 , четох на няколко места все различни неща.... поне няма трета опция :D Извинявам се, че съм те подвел .
 
е аз нали 1 съм го сложил .. то това заедно с session.gc_divisor било вероятност да се включи процеса ;)
като гледам днес всичките сесиии са от 18.01 след 7 което е добре :)
така че мисля че проблема е разрешен .

благодаря ти .
 

Back
Горе