Sessions nastavení a platnosti
- Pavel Kravčík
- Člen | 1196
Úplně se mi nedaří správně nastavit session. Menší projekt (4–5 aktivních uživatelů, jeden cron), roboti se nikam nedostanou, protože je vyžadováno přihlášení.
Denně ten projekt vytváří ~2000 sessions souborů. Divné je, že ty soubory jsou „postižené“ a nejdou z FTP stáhnout ani otevřít. Nefunguje ani nastavení lifetime, pokud ho nedám natvrdo do boostrapu přes gc_maxlifetime. Zkoušel jsem nastavit cesty, autoStart a podobně, ale zatím nic nepomohlo. Nějaké nápady? Nemůže to být tím přihlašovacím formulářem s CSFR ochranou? Nebo od čeho se odpíchnout a co zkontrolovat. Chtěl jsem se podívat do té session, ale nedá se k ní přistoupit, ale jako soubor jí vidím a práva má 0600 (to je možná problém), že tu session nemůže číst nic jiného a tak jí vytvoří znovu.
session:
autoStart: smart
cookiePath: '/' #zkoušel jsem i bez a domainName
expiration: '+ 100 days'
savePath: %tempDir%/sessions
PHP verze a nastavení session na serveru → 5.4.45.
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 8636400 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 8636400 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 /opt/bcom/var/www/modulservis/modulpoint.cz/www/app/../temp/sessions /var/lib/php5
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_trans_sid 0 0
- Pavel Kravčík
- Člen | 1196
@skrivy: Však to nemá žádný vliv, jestli si to nastavíš sem nebo tam, pokud si to hoster nastaví stejně. ;) Takže nic navíc se nezálohuje.
- skrivy
- Člen | 51
Pavel Kravčík napsal(a):
@skrivy: Však to nemá žádný vliv, jestli si to nastavíš sem nebo tam, pokud si to hoster nastaví stejně. ;) Takže nic navíc se nezálohuje.
Nechapu. Kdyz zalohuju web, tak mu necham zazalohovat adresare se zdrojaky a daty, naopak excludnu adresare s logy a tempem. … Nicmene, mam tim na mysli adresare, ktere jsou nastaveny ze strany serveru jako temp a log. Nikoliv, co si aplikace mysli, ze je log a temp. Opravdu neni ok prochazet kazdy web a upravovat zalohovani podle toho, jestli bezi na frameworku X nebo Y.
Editoval skrivy (21. 12. 2015 13:51)
- Pavel Kravčík
- Člen | 1196
@skrivy: Díky za postřehy, ale rád bych řešil můj problém a ne neschopnost komunikovat s klienty. :) Pokud bychom měli nějaký veřejný hosting, tak asi upravíme cestu. Máme vlastní řešení a nezálohujeme ani zdrojové soubory typu index.php, jen data z „fileStorage“.
A ještě je zvláštní, že se tak neděje ve starším Nette, ale jen v 2.3+
- skrivy
- Člen | 51
CZechBoY napsal(a):
@skrivy Takže vlastně Nette je totální anti-framework, protože používá „externí“ složky temp, log namísto třeba /var/log, /tmp
To vubec nerikam. Jen nechapu, proc se ma prepisovat nastaveni serveru, kde uz spousty veci funguje a maji tam smysl.
A to nastaveni v uvodnim prispevku, kde nastavuje expiraci na 100 dni, je krasna ukazka toho, co se stane, kdyz se lidem da moc velka svoboda. Pak to skonci tak, ze u navstevovanejsiho webu zustane na serveru adresar se spoustou souboru v nem, zalohovani (a nejenom to) bude kvuli tomu (uplne zbytecne) pomale a kdyz to nahlasim zakaznikovi, tak mi akorat rekne, ze se jeho programator nema cas a jebe na to. Tohle je mimochodem velmi casty scenar, ktery posledni dobou vidim.
Tak a ted co s tim?
Editoval skrivy (21. 12. 2015 14:34)
- skrivy
- Člen | 51
Pavel Kravčík napsal(a):
@skrivy: Díky za postřehy, ale rád bych řešil můj problém a ne neschopnost komunikovat s klienty. :) Pokud bychom měli nějaký veřejný hosting, tak asi upravíme cestu. Máme vlastní řešení a nezálohujeme ani zdrojové soubory typu index.php, jen data z „fileStorage“.
A ještě je zvláštní, že se tak neděje ve starším Nette, ale jen v 2.3+
Zkus ziskat obsah toho souboru se session a podivej se do nej.
Jinak nastaveni prav, se kteryma se sessions vytvari, muzes udelat pomoci session.savepath: http://php.net/…guration.php#…
The file storage module creates files using mode 600 by default. This default can be changed with the optional MODE argument: N;MODE;/path where MODE is the octal representation of the mode. Setting MODE does not affect the process umask.
Editoval skrivy (21. 12. 2015 15:02)
- Aurielle
- Člen | 1281
Pokud jedeš na vlastním stroji a máš Debian/Ubuntu, tak tam je vypnuté
pročišťování sessions v PHP (gc.probability
je 0) a místo
toho to řeší cron, který ale nezohledňuje vlastní cesty. Možná je to
i tvůj problém, řešením je (nejspíš) nastavit již zmíněnou
gc.probability
na >0. Netestoval jsem.
- Pavel Kravčík
- Člen | 1196
Ok, díky. To zní dobře. Vrátím ty testovací lifetime a zkusím se na to podívat. :)