Besonders auf alten V-Servern kann das Session Handling über File etwas träge wirken. Dagegen kann man versch. RAM basierte Handler einsetzen. Ich bevorzuge wegen dem Support und der Geschwindigkeit Redis.
Redis installieren
System: Ubuntu 18.04.1 LTS
sudo apt update
sudo apt install redis-server
sudo apt install php-redis
redis-cli ping -> PONG
Wir installieren hier erst den Redis Server und danach das PHP Modul. Kommt nach dem redis-cli ping ein PONG hat es geklappt.
Nun können wir über
sudo nano /etc/redis/redis.conf
noch ein Passwort festlegen oder die IP Adresse über bind anpassen. In unserem Fall möchten wir den Redis-Server nur lokal nutzen, also passen wir nur unsere php.ini an (je nach eurem Einsatz hier die apache2 oder fpm)
FPM konfigurieren
sudo nano /etc/php/7.2/fpm/php.ini
-------
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"
das sollte schon ausreichen. Jetzt noch noch php-fpm neustarten -> sudo service php-fpm restart und schon könnt Ihr testen ob es funktioniert:
<?php
//Counter sollte sich immer um +1 beim refresh erhöhen
session_start();
$count = isset($_SESSION['count']) ? $_SESSION['count'] : 1;
echo $count;
$_SESSION['count'] = ++$count;
in phpinfo() sollte nun auch der neue Handler vorhanden sein.
Ist es hier eigentlich auch erforderlich einen db_index zu setzen?
Sonst nutzt redis per default datenbank 0…
Und möglicherweise kommt die Shopware-Redis einstellung in der Config dem in die queere ? Oder eine andere applikation, die redis nutzt.
Viele Grüße
Hi Horst,
erforderlich ist es nicht. Du kannst aber einfach einen PREFIX setzen – habe ich mal hier beschrieben -> https://forum.shopware.com/discussion/51227/session-handling-eine-redis-instanz-fuer-zwei-shop-installationen
Moin wollte einmal nachfragen, gibt es die Möglichkeit wenn in der PHP.ini der Session handler als redis gesetzt ist auch über den Standardweg auch den Sessionhandler zu customizen?
Es gibt für php ja auch noch die Thematik mit dem Setzen eines SessionHandlers:
https://www.php.net/manual/de/class.sessionhandler.php
Nun habe ich eine Konstellation wo default als session handler redis gesetzt ist, ich aber darauf angewiesen bin eine Mischkonfiguration aus redis und einer separaten Datenquelle zu fahren und möchte den SessionHandler dahingehend über die entsprechende Klasse erweitern.