Rozhodli sme sa teda pre switchnutie na novú architektúru a potrebovali sme stávajúci eshop spraviť absolútne bezstavový, keďže nové architektúra mala viacero aplikačných serverov.
Obrázky sme zmigrovali na CDN spolu so statickými zdrojmi (css,js, atď...). Log súbory sme uložili na storage server a zostával posledný problém. Používateľské Sessions.
Tieto Sessions sa ukladali do filesystemu a OpenCart ako taký je neskutočne retardovaná platforma (základ pre veľký eshop - o tom ďalší blog).
Klasické nastavenie
session.save_handler = redis session.save_path = "tcp://xzy.redis.cache.windows.net:6379?auth=SuperSecureKey&database=1" ;
nefungovalo.
Po niekoľkých hodinách som teda konečne prišiel na riešenie.
Ako prvé je potrebné stiahnúť PREDIS knižnicu pre PHP. Keďže OpenCart nepozná také veci ako composer, treba to spraviť manuálne.
Obsah priečinka "src" je potrebné skopírovať do priečinka "system/library/predis" (treba ho vytvoriť)
Ďalej treba vytvoriť nový handler pre Session:
Tento handler tiež vložíme do "system/library/RedisSessionHandler.php"
Ďalej je potrebné upraviť "system/library/session.php", tak aby začala používať tento nový handler. Konkrétne sa zameriame na konštruktor triedy Session.
Najskôr samozrejme includneme požadovanú knižnicu, konkrétne Autoload a náš nový handler.
A potom už len samotný konštruktor
HOTOVO! Session sa po novom ukladá do Redisu. :)
No comments:
Post a Comment