Redis für Nextcloud konfigurieren (Memory Caching)

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

Related Images:

Über Micha

Leidenschaftlicher Griller, begeisterter Motorradfahrer, passionierter Fotograf, Familienmensch und ehrgeiziger Pedelecer

3 Kommentare

  1. Vielen Dank, es war sehr hilfreich.

  2. 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.

  3. 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.