Http\Session – Nette\InvalidStateException
- fikusir
- Člen | 27
Ahoj,
nedávno jsem přešel na PHP 8.0.14 běžícím pod IIS a potýkám se čas od času s chybou (jednou za čas, v rámci tisíců požadavků jsou to denně jednotky). Do té doby na 7.13 to bylo v pořádku.
Nette\InvalidStateException: ps_files_cleanup_dir: opendir(C:\Windows\Temp\php) failed: No such file or directory (2) in D:\Web\portalnew\vendor\nette\http\src\Http\Session.php:118
Přijde mi, že se Nette snaží smazat soubor, který již neexistuje. Trochu zvláštní totiž je, že v adresáři C:\Windows\Temp\php nejsou soubory starší 8 dnů, ale přitom mám nastavené v neonu:
session:
expiration: 14 days
V php.ini mám tyto hodnoty:
session.cookie_lifetime=local 1209600, master 0
session.gc_lifetime=local 1209600, master 1440
Nemůže být zakopaný pes zde? Pak bych to totiž chápal. „Něco“ maže data starší 7 dnů, ale Nette má někde informaci o souborech starších 7 dnů a ty se po 14 dnech snaží smazat, jenže ty neexistují.
Adresář C:\Windows\Temp\php, kam se Sessions ukládají je nastavený tak, že webserver, resp. uživatel má plná oprávnění.
Moc děkuju za případné pošťouchnutí!
Michal
- fikusir
- Člen | 27
Ahoj,
tak po mnoha neúspěších jsem došel k tomu, že adresář C:\Windows\Temp\ má prostě problém, ať nastavíte jakákoliv oprávnění.
Vytvořil jsem adresář pro sessions v nesystémovém adresáři, zadal adresář do Nette konfigurace a vše funguje, jak má.
Sice jsem moc nepochopil, proč to dříve fungovalo, ale rozhodl jsem se to nekoumat.
Michal