#php #session #iis-7 #windows-server-2008
#php #сеанс #iis-7 #windows-server-2008
Вопрос:
Всем привет, я итальянец, и я заранее приношу извинения за ошибки, которые гласят следующее 🙂
Это были темные дни для моего сервера, и я сходил с ума, чтобы понять, в чем может быть проблема. Я подумал, что база данных плохо настроена или что на жестком диске могут возникнуть какие-то проблемы, и я подумывал о смене сервера. Пока он тестировал жесткий диск с дефрагментацией и scandisk (не запускается), я решил открыть CCleaner, и чудо произошло. Папка Windows / Temp была полностью заблокирована, и вы даже не могли ее открыть. CCleaner очистил папку за десять часов :’) Десять часов для одной папки!
После дня уборки, сегодня утром я пошел проверить его, и внутри было 18000 файлов размером 0 КБ или максимум 10 КБ, которые называются «sess_0a5u2ou87 ………» ( sess_ имеет префикс, и я думаю, за ним следует md5).
Когда я открыл один из них, я обнаружил в нем переменные сеанса пользователей моего сайта.
var|s:1:"2";timeout|i:1403338177;id|s:1:"1";name|s:17:"Foo";
Здесь показано, как я создаю сеансы:
//create session
session_start();
$_SESSION['var'] = $var;
$_SESSION['timeout'] = time();
//work with session
public static function resetVar(){
if(isset($_SESSION['var'])){
unset($_SESSION['var']);
}
}
//destroy session
session_start();
if(isset($_SESSION['timeout'])) {
$duration = time() - (int)$_SESSION['timeout'];
if($duration > 6000) {
session_destroy();
header("Location: index.php");
}
$_SESSION['timeout'] = time();
}
Кто-нибудь может помочь мне понять это?
Ответ №1:
Я смог решить проблему. достаточно было изменить папку, в которой PHP сохраняет сеанс.. при его изменении файлы «sess_ …» старше одного часа будут автоматически удалены! Я думаю, что Php пытался удалить файлы в папке Windows / Temp, но, вероятно, из-за проблем с разрешениями, он не смог.
Вы можете изменить путь в настройках php (php.ini), изменив значение «session.save_path»
Ответ №2:
У меня была такая же проблема, но я видел ошибку отсутствия драйвера PHP MYSQL PDO.
could not find driver
Только после некоторого копания я обнаружил, что в каталоге сеанса было 15 тыс. файлов. После удаления все хорошо.
Проверьте этот php var, который управляет временем жизни файлов сеанса;
session.gc_maxlifetime