APCu & Redis Cache für Nextcloud 27
In diesem Artikel geht es darum, wie wir einen APCu Cache & Redis für das File Locking einrichten und für unsere Nextcloud 27 konfigurieren. Die Verwendung von Caching-Systemen wie APCu und Redis für Nextcloud kann erheblich zur Verbesserung der Leistung und Reaktionszeit von Nextcloud beitragen.
In einem anderen Beitrag habt Ihr gelernt, wie Ihr eine Nextcloud auf einer Synology NAS installieren könnt, schaut doch mal hier vorbei.
Wieso APCu & Redis Cache für Nextcloud 27 einrichten
Der Unterschied in der Geschwindigkeit zwischen einem Nextcloud-Server ohne Cache und einem mit Cache ist enorm. Insbesondere wenn die Anzahl der Dateien und Ordner steigt und mehr Multimedia-Dateien auf den Server gelangen, wird das Caching immer wichtiger, um Geschwindigkeit und Leistung zu erhalten. APCu wird zunächst einen Großteil des Cachings übernehmen, während Redis für das File Locking zuständig ist. Diese beide Caching Methoden stehen heute im Mittelpunkt dieses Blogbeitrags
Was ist der ACPu Cache
- APCu (Alternative PHP Cache User) ist ein PHP-Modul, das die Ausführungszeit von PHP-Code beschleunigt, indem es bereits kompilierten PHP-Code im Speicher speichert. Dadurch wird die Notwendigkeit, den Code bei jedem Seitenaufruf erneut zu kompilieren, beseitigt.
- Verbesserte Leistung: APCu verringert die Last auf dem Server und verbessert die Antwortzeiten, da es den Zugriff auf den Speicher für häufig verwendete Daten erleichtert.
- Ressourceneffizienz: Da APCu Daten im Speicher speichert, spart es Ressourcen, die sonst für Datenbankanfragen oder Dateisystemoperationen verwendet würden.
Was ist ein Redis Cache
- Redis (Remote Dictionary Server) ist ein im Arbeitsspeicher residierender Datenspeicher, der zum Cachen von Daten und als Message Broker verwendet werden kann.
- Verbesserte Leistung: Redis kann verwendet werden, um Dateilocking und Transaktionsdateien für Nextcloud zu handhaben. Das kann helfen, die Leistung zu steigern, indem Konflikte bei gleichzeitigen Zugriffen auf dieselben Daten verhindert werden.
- Skalierbarkeit: Redis ist hochgradig skalierbar und kann auch in verteilten Systemen eingesetzt werden, was es ideal für große Nextcloud-Installationen macht.
- Persistenz: Obwohl Redis hauptsächlich im Speicher arbeitet, bietet es auch Möglichkeiten zur Persistenz, d.h. es kann Daten auf der Festplatte speichern, was eine zusätzliche Sicherheitsebene bietet.
ACPu Caching für Nextcloud 27 einrichten
Die Einrichtung des ACPu Caches ist eigentlich relativ einfach. Wir benötigen nur das entsprechende PHP-Modul welches diese Aufgabe erledigt. Das ist ganz einfach mit diesem Befehl zu installieren:
apt install php8.1-apcu php8.1-opcache
Bitte ersetzt 8.1 mit der Version dir Ihr tatsächlich benutz
Aktiviert die Module mit:
Jetzt müssen wir noch sicherstellen dass APCu für PHP CLI aktiviert ist. Wir öffnen dafür die php.ini in /etc/php/8.1/cli/
Ersetzt 8.1 mit der PHP Version die Ihr benutzt!
Wir fügen dafür einfach apc.enable_cli=1 an oberster Stelle ein:
Danach gehen wir in unsere Nextcloud Konfigurationsdatei, das geht mit:
sudo nano /var/www/nextcloud/config/config.php
Jetzt fügen wir folgende Zeile hinzu:
'memcache.local' => '\OC\Memcache\APCu',
Die Zeile könnt Ihr einfügen wo Ihr wollt. Am besten setzt Ihr die bei einer neuen Installation ganz ans Ende damit Ihr immer im Überblick habt was Ihr so hinzufügt.
Speichert die Datei mit ctrl+o ab und beendet mit ctrl+x
Anschliessend müsste der ACPu Cache bereits aktiviert sein.
Redis Cache für das File Locking installieren und konfigurieren
Den Redis Cache zu installieren und konfigurieren gestaltet sich als etwas aufwendiger, folgt einfach den Anweisungen ganz genau, dann sollte alles problemlos laufen. Zuerst installieren wir uns den Redis Server und das entsprechende PHP-Modul, das geht mit:
sudo apt install redis-server php8.1-redis
Zuerst öffnen wir die Redis Konfigurationsdatei, diese befindet sich in /etc/redis/redis.conf
sudo nano /etc/redis/redis.conf
Nun suchen wir den Eintrag Port und ändern 6379 auf 0 ab
Danach unkommentieren wir die folgenden Einträge und ändern sie entsprechend ab:
unixsocket /var/run/redis/redis-server.sock
unixsocketperm 770
Am Schluss sollte das so ausehen:
Speichert und beendet das ganze, jetzt ändern wir noch die Berechtigungen entsprechend ab und fügen Redis zur www-data bzw der Apache Gruppe hinzu, indem wir folgenden Befehl in die Konsole eingeben:
sudo usermod -a -G redis www-data
Nun starten wir noch den Apache Webserver neu mit:
sudo service apache2 restart
und starten den Redis Server neu mit:
sudo systemctl restart redis-server.service
Anschliessend müssen wir unseren Nextcloud Konfiguration anpassen in dem wir folgendes nach unserem oberen APCu Eintrag hinzufügen:
'memcache.locking' => '\OC\Memcache\Redis',
'filelocking.enabled' => 'true',
'redis' =>
array (
'host' => '/var/run/redis/redis-server.sock',
'port' => 0,
'timeout' => 0.0,
),
Damit der Redis Server immer bei einem Neustart des Systems ebenso startet, aktivieren wir den Service dauerhaft mit:
sudo systemctl enable redis-server
Jetzt starten wir unseren Server noch kurz neu mit systemctl reboot und danach sollte uns unsere Nextcloud mit einem schönen grünen Haken belohnen:
Jetzt ist unsere Nextcloud mit einem vollwertigem Caching System ausgestattet und das arbeiten mit der Cloud ist um einiges angenehmer. Daten können nun dank Redis nicht mehr ausversehen von anderen überschrieben werden. Falls Ihr mehr über erweitertes Caching erfahren wollt, lohnt es sich die offizielle Nextcloud Dokumentation einzusehen:
https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html
Ich hoffe Euch die Erfahrungen mit Eurer Nextcloud nun etwas verbessert zu haben, habt Ihr Fragen, schreibt sie in die Kommentare!