Nefunkční expirace session
- exquis
- Člen | 83
Zdravím pánové,
mám problém s nastavením session, neustále mě odhlašuje cca po hodině nečinnosti a to i přes nastavené setExpiration(„+14 days“). Napadlo mě, že možná expiraci nastavuji špatně, můžete se prosím mrknout, jestli to nedělám špatně/pozdě?
public function signInFormSucceeded($form) {
$v = $form->values;
try {
$u = $this->getUser();
$u->setAuthenticator($this->context->getService("AdminAuthenticator"));
$u->setExpiration("+ 14 days", TRUE);
$u->login($v->username, $v->password);
$this->log("Přihlášení uživatele " . $v->username);
$this->redirect('System:dashboard');
} catch (Nette\Security\AuthenticationException $e) {
$form->addError($e->getMessage());
}
}
CONFIG.NEON
session:
expiration: 14 days
debugger: true
phpinfo()
Session Support enabled
Registered save handlers files user memcache memcached
Registered serializer handlers php_serialize php php_binary wddx
Directive Local Value Master Value
session.auto_start Off Off
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly On Off
session.cookie_lifetime 864000 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file /dev/urandom /dev/urandom
session.entropy_length 32 32
session.gc_divisor 1000 1000
session.gc_maxlifetime 864000 1440
session.gc_probability 0 0
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /var/lib/php5/sessions /var/lib/php5/sessions
session.serialize_handler php php
session.upload_progress.cleanup On On
session.upload_progress.enabled On On
session.upload_progress.freq 1% 1%
session.upload_progress.min_freq 1 1
session.upload_progress.name PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix upload_progress_ upload_progress_
session.use_cookies On On
session.use_only_cookies On On
session.use_strict_mode Off Off
session.use_trans_sid 0 0
díky
- David Matějka
- Moderator | 6445
ubuntu/debian nepouziva k cisteni session gc od php, ale ma vlastni mechanismus – proste jednou za cas se spusti cron, ktery smaze session. Pokud je to tvuj server, muzes navysit gc_maxlifetime v php.ini
druhou moznosti je zmenit session.save_path, pak si ale dej pozor na mazani session, at tam neni spousta souboru. bud si na to udelej vlastni script, nebo zpet zapni ten gc mechanismus od php – melo by stacit nastavit session.gc_probability na 1
edit: jeste k tomu bodu 1. asi nemusi stacit navysit tu hodnotu – zalezi
na linuxu. treba na ubuntu to dokaze precist z php.ini, ale v debianu koukam
ze je ta hodnota natvrdo napsana v tom scriptu. takze to kdyztak budes muset
upravit v /usr/lib/php5/maxlifetime
- exquis
- Člen | 83
David Matějka napsal(a):
ubuntu/debian nepouziva k cisteni session gc od php, ale ma vlastni mechanismus – proste jednou za cas se spusti cron, ktery smaze session. Pokud je to tvuj server, muzes navysit gc_maxlifetime v php.ini
druhou moznosti je zmenit session.save_path, pak si ale dej pozor na mazani session, at tam neni spousta souboru. bud si na to udelej vlastni script, nebo zpet zapni ten gc mechanismus od php – melo by stacit nastavit session.gc_probability na 1
edit: jeste k tomu bodu 1. asi nemusi stacit navysit tu hodnotu – zalezi na linuxu. treba na ubuntu to dokaze precist z php.ini, ale v debianu koukam ze je ta hodnota natvrdo napsana v tom scriptu. takze to kdyztak budes muset upravit v
/usr/lib/php5/maxlifetime
Vypadá, že jsi na to kápnul, po nastavení gc_probability na 1 již gc_maxlifetime respektuje nastaveni v config.neon, díky moc ;)