NextCloud Memcache mit Redis
NextCloud Memcache mit Redis

NextCloud Memcache mit Redis

Das letzte Update war vor 13. August 2023 von Vinzenz Schächner

Nach dem Update auf NextCloud 27 gibt es bei vielen folgenden Fehler:

Die Datenbank wird zum Sperren von Transaktionsdateien verwendet. Um die Leistung zu verbessern, richte bitte, sofern verfügbar, Memcache ein.

Wir zeigen euch, wie Ihr diesen ohne viel Ärger wegbekommt. Dazu richten wir Memcache mir Redis ein:

Zuerst installieren wir Apcu mit

sudo apt install php-apcu

Danach müssen wir Redis installieren. Das geht mit folgendem Befehl:

sudo apt install redis-server php-redis

Die installierte Redis-Instanz müssen wir nun bearbeiten.

In der

sudo nano /etc/redis/redis.conf

Datei ändern wir port 6379 zu

port 0

Dann entfernen wir das # vor

unixsocket /var/run/redis/redis-server.sock

Die Zeile darunter verändern wir zu

unixsocketperm 770

Die Datei speichern wir mit strg + o und verlassen sie mit strg + x.

Jetzt müssen wir den Redis Benutzer noch zur Gruppe www-data hinzufügen. Das geht mit dem folgenden Befehl:

sudo usermod -a -G redis www-data

Wenn wir das gemacht haben, starten wir Redis mit

sudo service redis-server restart

neu.

Jetzt können wir auch noch den Webserver mit

sudo service apache2 restart

neustarten. Danach bearbeiten wir die Nextcloud config.php Datei mit

sudo nano /var/www/nextcloud/config/config.php

Dort ändern wir die Zeile memcache.local so, dass die Datei am Ende folgenden Inhalt hat:

 'memcache.local' => '\\OC\\Memcache\\APCu',
  'filelocking.enabled' => 'true',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' => array (
    'host' => '/var/run/redis/redis-server.sock',
    'port' => 0,
    ),

Meldet euch gerne bei Fragen oder Verbesserungsvorschlägen!

4 Kommentare

  1. Pascal

    hallo,
    Also wenn ich deiner anleitung folge komme ich erstmal auf den punt das in meiner config.php memcache.local garnicht drin steht und wenn ich dann darin

     'memcache.local' => '\\OC\\Memcache\\APCu',
      'filelocking.enabled' => 'true',
      'memcache.locking' => '\\OC\\Memcache\\Redis',
      'redis' => array(
        'host' => '/var/run/redis/redis-server.sock',
        'port' => 0,
        ),
    

    eintrage dann schreib meine Nextcloud mir

    Internal Server Error
    
    The server encountered an internal error and was unable to complete your request.
    Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
    More details can be found in the webserver log.
    

    Könntest du mir da weiterhelfen ?
    LG
    Pascal

    1. Stephan

      Hatte das selbe Problem.

      In der Zeile:
      ‚redis‘ => array( fehlt ein Leerzeichen,
      es müsste:
      ‚redis‘ => array (
      heissen.

      Danach hat es bei mir funktioniert.

      Vielen Dank an Vinzenz für die Anleitung, hat mir sehr geholfen.
      Gruß
      Stephan

      1. Vinzenz Schächner

        Vielen Dank Stephan für deinen Hinweis. Wie man sieht, hat das uns schon geholfen!
        Es freut uns auch sehr, dass dir die Anleitung geholfen hat und du auch unseren Fehler bemerkt hast!
        Einen schönen Abend mit der Familie oder den Computer an euch alle!

    2. Vinzenz Schächner

      Wie @Stefphan schon geschrieben hat, habe ich da das Leerzeichen übersehen.
      Tut mir leid. Hier sieht man wieder, dass man nicht alles kopieren soll (-;, aber das soll kein Vorwurf sein.
      Das war eindeutig mein Fehler, Entschuldigung.
      In der Anleitung haben wir das schon ausgebessert, sollte das Problem aber trotzdem noch bestehen, kannst du uns gerne deine Config schicken (du musst nur die sensiblen Bereiche entfernen).
      Viele Grüße und vielen Dank für deine Frage!

Schreiben Sie einen Kommentar

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