Unable to set ‚session.save_path‘ problém
- spd
- Člen | 2
Ahoj, používám Nette 2.0.13 s PHP verzí 5.3.27.
Trápí mě, že se na produkčním serveru často objevují vyjímky s tímto textem:
Unable to set 'session.save_path' to value '/home/myacc/Project/sessions' when session has been started by session.auto_start or session_start().
Na lokálním serveru se mi ji se sténým kódem nepodařilo dosáhnout.
Kód podle logu zhavaruje například v této metodě při volání $this->user->login:
<?php
public function handleEmailLogin($hash) {
try {
$data = $this->emailhash->getDecriptedData($hash);
if ($data->op == 'emailconfirm') {
$playerToTest = $this->playerModel->isAccountActive($data->ref);
if ($playerToTest) {
if ($playerToTest->confirmed) {
$this->user->setAuthenticator($this->context->emailconfirmauthenticator);
$this->user->login($data->ref, false);
$this->user->setAuthenticator($this->context->authenticator);
}
}
}
} catch (\Nette\Security\AuthenticationException $e) {
return;
}
$this->redirect('M:default');
}
?>
Není to však jediný případ, chyba se obecně objevuje když na $this->user zavolám isLoggedIn() nebo logout().
V configu nastavuju sessions takhle a cílovou složku pro sessions mám vytvořenou:
common:
nette:
session:
expiration: 365 days
save_path: '/home/myacc/Project/sessions'
cookie_path: '/'
autoStart: smart
Nikde jinde než v configu sessions nenastavuju.
v php.ini mám:
session.auto_start = 0
session.save_path = /tmp
Takže se o mazání sessions starám sám.
Nevíte co dělám špatně a jak z toho ven? Děkuji
Editoval spd (29. 11. 2013 16:00)
- Majkl578
- Moderator | 1364
Plus jedna rada mimo, protože vidím, že tam podivně šachuješ s autentikátory. Podívej se na multi authenticator od Vojty Dobeše, řeší přesně tvůj problém, kdy potřebuješ mít v aplikaci víc autentikátorů.