Nextcloud Hub 35 unter Debian 13: PHP-FPM, OPcache, APCu & Redis einrichten

Dieses Tutorial beschreibt die Einrichtung und Optimierung einer Nextcloud-Hub-35-Installation unter Debian 13. Die PHP-Verarbeitung erfolgt über PHP-FPM 8.4 in Verbindung mit Apache. Zusätzlich werden OPcache, APCu und Redis eingerichtet. Dadurch werden die typischen Warnungen der Nextcloud-Administrationsoberfläche zu PHP, Caching und transaktionalen Dateisperren behoben.

Umgebung

  • Debian 13
  • Nextcloud Hub 35
  • Apache 2
  • PHP 8.4 / PHP-FPM

Hinweis: Nach jeder Änderung an PHP-FPM-Konfigurationsdateien muss der Dienst neu gestartet werden (sudo systemctl restart php8.4-fpm). Das wird im Folgenden nicht bei jedem einzelnen Schritt wiederholt, sondern am Ende jedes Abschnitts kurz erwähnt.


1. PHP-Pakete installieren und PHP-FPM aktivieren

Für Nextcloud werden verschiedene PHP-Erweiterungen benötigt. Die Paketnamen ohne Versionsnummer verwenden die Debian-Metapakete und erleichtern spätere Aktualisierungen:

PHP-FPM aktivieren und starten:

Status prüfen (erwartet: active (running)):

2. Apache für PHP-FPM konfigurieren

Benötigte Apache-Module aktivieren:

Von Debian bereitgestellte PHP-FPM-Konfiguration für Apache aktivieren:

Apache neu laden:

Geladene Module prüfen (erwartet: proxy_fcgi_module (shared)):

3. PHP-Grundeinstellungen für Nextcloud

Datei: /etc/php/8.4/fpm/php.ini

Einstellung Zweck
date.timezone Zeitzone Europa/Berlin
memory_limit bis zu 512 MB RAM pro PHP-Prozess
upload_max_filesize Uploads bis 500 MB
post_max_size HTTP-POST-Anfragen bis 600 MB
max_execution_time max. Laufzeit eines PHP-Prozesses: 300 s
file_uploads aktiviert PHP-Dateiuploads
allow_url_fopen Zugriff auf entfernte Ressourcen über PHP-Stream-Wrapper

Danach: sudo systemctl restart php8.4-fpm

4. OPcache konfigurieren

OPcache speichert kompilierten PHP-Code im Arbeitsspeicher, sodass PHP-Dateien nicht bei jeder Anfrage neu kompiliert werden müssen.

Datei: /etc/php/8.4/mods-available/opcache.ini

  • opcache.interned_strings_buffer=32 – ausreichend großer Puffer für die von Nextcloud verwendeten interned Strings
  • opcache.memory_consumption=128 – Gesamt-OPcache-Speicher

Danach: sudo systemctl restart php8.4-fpm

Kontrolle (erwartet: opcache.interned_strings_buffer => 32 => 32):

5. APCu als lokalen Nextcloud-Cache konfigurieren

APCu dient als schneller lokaler Cache im Arbeitsspeicher.

Prüfen, ob APCu installiert ist (erwartet: apcu):

Konfiguration liegt unter /etc/php/8.4/fpm/conf.d/, Aktivierung prüfen:

APCu in Nextcloud als lokalen Cache setzen:

Kontrolle (erwartet: \OC\Memcache\APCu):

Danach: sudo systemctl restart php8.4-fpm

6. Redis für transaktionale Dateisperren konfigurieren

Redis übernimmt die transaktionalen Dateisperren und entlastet dadurch die Datenbank. Verbindung: 127.0.0.1:6379.

Erreichbarkeit prüfen (erwartet: PONG):

PHP-Erweiterung prüfen:

Redis als Locking-Cache setzen:

Kontrolle (erwartet: \OC\Memcache\Redis):

Zusätzlich muss die Redis-Verbindung in der Nextcloud-Konfiguration hinterlegt sein (siehe Abschnitt 7). Danach: sudo systemctl restart php8.4-fpm

7. Zentrale Nextcloud-Konfiguration (config.php)

Datei: /var/www/nextcloud/config/config.php

Die serverid ermöglicht eine eindeutige Identifikation der PHP-Serverinstanz und beseitigt die entsprechende Warnung in der Nextcloud-Administrationsoberfläche.

8. Imagick und SVG-Unterstützung prüfen

Falls Nextcloud folgende Warnung anzeigt: „Das PHP-Modul ‚imagick‘ in dieser Instanz hat keine SVG-Unterstützung.”

Installierte Versionen ermitteln:

Bei ImageMagick 7 wird das Kommando magick verwendet:

Die Installation zusätzlicher Pakete sollte erst nach dieser Prüfung erfolgen.

9. Fehlende Datenbank-Indizes ergänzen

Bei Bedarf zusätzlich fehlende Spalten und Primärschlüssel ergänzen:

Alle occ-Befehle werden als Benutzer www-data ausgeführt, da Nextcloud unter diesem Benutzer läuft.

10. Dienste neu starten – Referenz

Änderung an Befehl
PHP-FPM / PHP-Erweiterungen sudo systemctl restart php8.4-fpm
Apache-Konfiguration (klein) sudo systemctl reload apache2
Apache-Konfiguration (umfangreich) sudo systemctl restart apache2
Redis-eigene Konfiguration sudo systemctl restart redis-server

11. Abschlusskontrolle

Prüfung Befehl Erwartetes Ergebnis
PHP-FPM Status systemctl status php8.4-fpm --no-pager active (running)
Apache Status systemctl status apache2 --no-pager active (running)
PHP-Version php -v PHP 8.4.x
APCu php -m | grep -i apcu apcu
Redis-PHP-Erweiterung php -m | grep -i redis redis
Redis-Verbindung redis-cli -h 127.0.0.1 -p 6379 ping PONG
OPcache-Puffer php -i | grep opcache.interned_strings_buffer => 32 => 32
Nextcloud lokaler Cache sudo -u www-data php /var/www/nextcloud/occ config:system:get memcache.local \OC\Memcache\APCu
Nextcloud Locking-Cache sudo -u www-data php /var/www/nextcloud/occ config:system:get memcache.locking \OC\Memcache\Redis

Ergebnis

PHP-FPM übernimmt die PHP-Verarbeitung der Nextcloud-Webanwendung. OPcache stellt den PHP-Bytecode-Cache bereit, APCu übernimmt den lokalen Nextcloud-Cache und Redis die transaktionalen Dateisperren. Damit sind die wesentlichen PHP- und Cache-Komponenten für eine Nextcloud-Hub-35-Installation unter Debian 13 eingerichtet.


CC_BY_NC_SAby Speefak | blog.bogdancaraman.com

 

Schreibe einen Kommentar

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

Back To Top