Http\Session – Nette\InvalidStateException

fikusir
Člen | 25
+
0
-

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 | 25
+
0
-

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