Hallo zusammen,
seit langer Zeit gibt es mal wieder was Technisches auf meiner Seite. Die Herausforderung der letzten Wochen bestand darin, einen PHP-Memory-Cache für meine Nextcloud-Installation bereit zu stellen. Die Wahl fiel aufgrund meiner genutzen Distribution auf Redis.
Der erste Schritt um Redis für Nextcloud zu nutzen ist natürlich die Installation:
$ sudo apt install php-apcu redis-server php-redis
$ sudo service apache2 restart
Im nächsten Schiritt müssen wir die Konfigurationsdatein von Redis anpassen, dafür nutze ich am liebsten nano
$ sudo nano /etc/redis/redis.conf
CTRL+w drücken und dann „port“ eingeben. So wird nach dem Begriff gesucht, danach
port 6379
in
port 0
ändern. Dann erneut CTRL+w drücken, um nach
unixsocket /var/run/redis/redis.sock
zu suchen und dies auszukommentieren, also quasi „scharf“ zu schalten. Ebenso die darunter stehende Seite auskommentieren
unixsocketperm 700
und zu
unixsocketperm 770
ändern. Danach nano mit CTRL+x, dem „Y“ für Speichern und Beenden verlassen. Soweit zur Konfigurationsdatei von Redis.
Als nächstes packen wir den Redis user in die Gruppe www-data:
$ sudo usermod -a -G redis www-data
Gefolgt von einem Apache-Restart
$ sudo service apache2 restart
und nun noch den Redis-Server starten
$ sudo service redis-server start
Nun müssen wir noch zur Konfigurationsdatei von Nextcloud
$ sudo nano /var/www/html/nextcloud/config/config.php
folgende Zeilen nach der letzten Zeile und vor dem ‚);‘ einfügen:
'memcache.local' => '\\OC\\Memcache\\Redis',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'filelocking.enabled' => 'true',
'redis' =>
array (
'host' => 'localhost',
'port' => 0,
'timeout' => 0.0,
),
Zum Abschluss wieder CTRL+x gefolgt von einem „Y“, um die Datei zu specihern und nano zu verlassen.
Von nun an sollte der PHP-Memory-Cache für Deine Nextcloud-Installation aktiv sein.
Ich persönlich habe einen deutlichen Unterschied im Zugriff festgestellt.
PHP on!
Micha
Vielen Dank, es war sehr hilfreich.
Dieser Beitrag war unter Debian11 mit apache2.4 hilfreich und funktionierte auch.
Nach einem Upgrade auf Debian12 war die NC27 nicht mehr zu erreichen! Hatte ein paar Tage gebraucht um herauszufinden das es am Redis Gedöns lag.
Ich habe nun alle Pakete mit apt purge entfernt um auch alle Einstellungen zu löschen. danach php-apcu redis-server php-redis wieder installiert und die Redis.conf nicht bearbeitet.
Folgendes in die config.php eingetragen:
‚memcache.local‘ => ‚\\OC\\Memcache\\APCu‘,
‚filelocking.enabled‘ => ‚true‘,
‚memcache.locking‘ => ‚\\OC\\Memcache\\Redis‘,
‚redis‘ =>
array (
‚host‘ => ‚127.0.0.1‘,
‚port‘ => 6379,
‚timeout‘ => 0.0,
),
und nun läuft wieder alles wie gewohnt.
Danke für den Einstieg.
Ich mußte in den Parameter „host“ die Lokation des UNIX-Socket Files eintragen, was auch logisch erscheint, wenn man die TCP-Kommunikation deaktiviert (wie oben geschehen). Dies ist auch in der NC Doku so beschrieben: https://docs.nextcloud.com/server/27/admin_manual/configuration_files/files_locking_transactional.html