{"id":8959,"date":"2026-09-22T00:33:20","date_gmt":"2026-09-21T22:33:20","guid":{"rendered":"https:\/\/speefak.spdns.de\/oss_lifestyle\/?p=8959"},"modified":"2026-09-22T00:34:33","modified_gmt":"2026-09-21T22:34:33","slug":"nextcloud-hub-35-unter-debian-13-php-fpm-opcache-apcu-redis-einrichten","status":"publish","type":"post","link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/nextcloud-hub-35-unter-debian-13-php-fpm-opcache-apcu-redis-einrichten\/","title":{"rendered":"Nextcloud Hub 35 unter Debian 13: PHP-FPM, OPcache, APCu &#038; Redis einrichten"},"content":{"rendered":"<p>Dieses Tutorial beschreibt die Einrichtung und Optimierung einer Nextcloud-Hub-35-Installation unter Debian 13. Die PHP-Verarbeitung erfolgt \u00fcber PHP-FPM 8.4 in Verbindung mit Apache. Zus\u00e4tzlich werden OPcache, APCu und Redis eingerichtet. Dadurch werden die typischen Warnungen der Nextcloud-Administrationsoberfl\u00e4che zu PHP, Caching und transaktionalen Dateisperren behoben.<\/p>\n<h2>Umgebung<\/h2>\n<ul>\n<li>Debian 13<\/li>\n<li>Nextcloud Hub 35<\/li>\n<li>Apache 2<\/li>\n<li>PHP 8.4 \/ PHP-FPM<\/li>\n<\/ul>\n<p><strong>Hinweis:<\/strong> Nach jeder \u00c4nderung an PHP-FPM-Konfigurationsdateien muss der Dienst neu gestartet werden (<code>sudo systemctl restart php8.4-fpm<\/code>). Das wird im Folgenden nicht bei jedem einzelnen Schritt wiederholt, sondern am Ende jedes Abschnitts kurz erw\u00e4hnt.<\/p>\n<hr \/>\n<h2>1. PHP-Pakete installieren und PHP-FPM aktivieren<\/h2>\n<p>F\u00fcr Nextcloud werden verschiedene PHP-Erweiterungen ben\u00f6tigt. Die Paketnamen ohne Versionsnummer verwenden die Debian-Metapakete und erleichtern sp\u00e4tere Aktualisierungen:<\/p>\n<pre class=\"lang:default decode:true\">sudo apt install php-fpm php-cli php-common php-mysql php-curl php-gd php-xml php-zip php-mbstring php-intl php-bcmath php-gmp php-imagick php-apcu php-redis<\/pre>\n<p>PHP-FPM aktivieren und starten:<\/p>\n<pre class=\"lang:default decode:true\">sudo systemctl enable --now php8.4-fpm<\/pre>\n<p>Status pr\u00fcfen (erwartet: <code>active (running)<\/code>):<\/p>\n<pre class=\"lang:default decode:true\">systemctl status php8.4-fpm --no-pager<\/pre>\n<h2>2. Apache f\u00fcr PHP-FPM konfigurieren<\/h2>\n<p>Ben\u00f6tigte Apache-Module aktivieren:<\/p>\n<pre class=\"lang:default decode:true\">sudo a2enmod proxy_fcgi setenvif<\/pre>\n<p>Von Debian bereitgestellte PHP-FPM-Konfiguration f\u00fcr Apache aktivieren:<\/p>\n<pre class=\"lang:default decode:true\">sudo a2enconf php8.4-fpm\r\n<\/pre>\n<p>Apache neu laden:<\/p>\n<pre class=\"lang:default decode:true\">sudo systemctl reload apache2<\/pre>\n<p>Geladene Module pr\u00fcfen (erwartet: <code>proxy_fcgi_module (shared)<\/code>):<\/p>\n<pre class=\"\">apache2ctl -M | grep proxy_fcgi<\/pre>\n<h2>3. PHP-Grundeinstellungen f\u00fcr Nextcloud<\/h2>\n<p>Datei: <code>\/etc\/php\/8.4\/fpm\/php.ini<\/code><\/p>\n<pre class=\"lang:default decode:true \">; ==== Nextcloud custom settings ====\r\ndate.timezone = Europe\/Berlin\r\nmemory_limit = 512M\r\nupload_max_filesize = 500M\r\npost_max_size = 600M\r\nmax_execution_time = 300\r\nfile_uploads = On\r\nallow_url_fopen = On<\/pre>\n<table>\n<thead>\n<tr>\n<th>Einstellung<\/th>\n<th>Zweck<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>date.timezone<\/code><\/td>\n<td>Zeitzone Europa\/Berlin<\/td>\n<\/tr>\n<tr>\n<td><code>memory_limit<\/code><\/td>\n<td>bis zu 512 MB RAM pro PHP-Prozess<\/td>\n<\/tr>\n<tr>\n<td><code>upload_max_filesize<\/code><\/td>\n<td>Uploads bis 500 MB<\/td>\n<\/tr>\n<tr>\n<td><code>post_max_size<\/code><\/td>\n<td>HTTP-POST-Anfragen bis 600 MB<\/td>\n<\/tr>\n<tr>\n<td><code>max_execution_time<\/code><\/td>\n<td>max. Laufzeit eines PHP-Prozesses: 300 s<\/td>\n<\/tr>\n<tr>\n<td><code>file_uploads<\/code><\/td>\n<td>aktiviert PHP-Dateiuploads<\/td>\n<\/tr>\n<tr>\n<td><code>allow_url_fopen<\/code><\/td>\n<td>Zugriff auf entfernte Ressourcen \u00fcber PHP-Stream-Wrapper<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Danach: <code>sudo systemctl restart php8.4-fpm<\/code><\/p>\n<h2>4. OPcache konfigurieren<\/h2>\n<p>OPcache speichert kompilierten PHP-Code im Arbeitsspeicher, sodass PHP-Dateien nicht bei jeder Anfrage neu kompiliert werden m\u00fcssen.<\/p>\n<p>Datei: <code>\/etc\/php\/8.4\/mods-available\/opcache.ini<\/code><\/p>\n<pre class=\"lang:default decode:true \">zend_extension=opcache.so\r\n\r\nopcache.jit=off\r\nopcache.enable=1\r\nopcache.memory_consumption=128\r\nopcache.interned_strings_buffer=32\r\nopcache.max_accelerated_files=10000\r\nopcache.revalidate_freq=1\r\nopcache.save_comments=1<\/pre>\n<ul>\n<li><code>opcache.interned_strings_buffer=32<\/code> \u2013 ausreichend gro\u00dfer Puffer f\u00fcr die von Nextcloud verwendeten interned Strings<\/li>\n<li><code>opcache.memory_consumption=128<\/code> \u2013 Gesamt-OPcache-Speicher<\/li>\n<\/ul>\n<p>Danach: <code>sudo systemctl restart php8.4-fpm<\/code><\/p>\n<p>Kontrolle (erwartet: <code>opcache.interned_strings_buffer =&gt; 32 =&gt; 32<\/code>):<\/p>\n<pre class=\"lang:default decode:true\">php -i | grep opcache.interned_strings_buffer<\/pre>\n<h2>5. APCu als lokalen Nextcloud-Cache konfigurieren<\/h2>\n<p>APCu dient als schneller lokaler Cache im Arbeitsspeicher.<\/p>\n<p>Pr\u00fcfen, ob APCu installiert ist (erwartet: <code>apcu<\/code>):<\/p>\n<pre class=\"lang:default decode:true\">php -m | grep -i apcu<\/pre>\n<p>Konfiguration liegt unter <code>\/etc\/php\/8.4\/fpm\/conf.d\/<\/code>, Aktivierung pr\u00fcfen:<\/p>\n<pre class=\"lang:default decode:true\">ls -l \/etc\/php\/8.4\/fpm\/conf.d\/*apcu*<\/pre>\n<p>APCu in Nextcloud als lokalen Cache setzen:<\/p>\n<pre class=\"lang:default decode:true\">sudo -u www-data php \/var\/www\/nextcloud\/occ config:system:set memcache.local --value='\\OC\\Memcache\\APCu'<\/pre>\n<p>Kontrolle (erwartet: <code>\\OC\\Memcache\\APCu<\/code>):<\/p>\n<pre class=\"lang:default decode:true\">sudo -u www-data php \/var\/www\/nextcloud\/occ config:system:get memcache.local<\/pre>\n<p>Danach: <code>sudo systemctl restart php8.4-fpm<\/code><\/p>\n<h2>6. Redis f\u00fcr transaktionale Dateisperren konfigurieren<\/h2>\n<p>Redis \u00fcbernimmt die transaktionalen Dateisperren und entlastet dadurch die Datenbank. Verbindung: <code>127.0.0.1:6379<\/code>.<\/p>\n<p>Erreichbarkeit pr\u00fcfen (erwartet: <code>PONG<\/code>):<\/p>\n<pre class=\"lang:default decode:true\">redis-cli -h 127.0.0.1 -p 6379 ping<\/pre>\n<p>PHP-Erweiterung pr\u00fcfen:<\/p>\n<pre class=\"lang:default decode:true\">php -m | grep -i redis<\/pre>\n<p>Redis als Locking-Cache setzen:<\/p>\n<pre class=\"lang:default decode:true\">sudo -u www-data php \/var\/www\/nextcloud\/occ config:system:set memcache.locking --value='\\OC\\Memcache\\Redis'<\/pre>\n<p>Kontrolle (erwartet: <code>\\OC\\Memcache\\Redis<\/code>):<\/p>\n<pre class=\"lang:default decode:true\">sudo -u www-data php \/var\/www\/nextcloud\/occ config:system:get memcache.locking<\/pre>\n<p>Zus\u00e4tzlich muss die Redis-Verbindung in der Nextcloud-Konfiguration hinterlegt sein (siehe Abschnitt 7). Danach: <code>sudo systemctl restart php8.4-fpm<\/code><\/p>\n<h2>7. Zentrale Nextcloud-Konfiguration (config.php)<\/h2>\n<p>Datei: <code>\/var\/www\/nextcloud\/config\/config.php<\/code><\/p>\n<pre class=\"lang:default decode:true\">'default_phone_region' =&gt; 'DE',\r\n'maintenance_window_start' =&gt; 4,\r\n'memcache.local' =&gt; '\\\\OC\\\\Memcache\\\\APCu',\r\n'memcache.locking' =&gt; '\\\\OC\\\\Memcache\\\\Redis',\r\n'serverid' =&gt; '01',\r\n'redis' =&gt; [\r\n    'host' =&gt; '127.0.0.1',\r\n    'port' =&gt; 6379,\r\n],<\/pre>\n<p>Die <code>serverid<\/code> erm\u00f6glicht eine eindeutige Identifikation der PHP-Serverinstanz und beseitigt die entsprechende Warnung in der Nextcloud-Administrationsoberfl\u00e4che.<\/p>\n<h2>8. Imagick und SVG-Unterst\u00fctzung pr\u00fcfen<\/h2>\n<p>Falls Nextcloud folgende Warnung anzeigt: <em>\u201eDas PHP-Modul \u201aimagick\u2018 in dieser Instanz hat keine SVG-Unterst\u00fctzung.&#8221;<\/em><\/p>\n<p>Installierte Versionen ermitteln:<\/p>\n<pre class=\"lang:default decode:true \">php --ri imagick | grep -E \"imagick|ImageMagick\"\r\ndpkg -l | grep -E 'imagemagick|php8.4-imagick|libmagick'<\/pre>\n<p>Bei ImageMagick 7 wird das Kommando <code>magick<\/code> verwendet:<\/p>\n<pre class=\"lang:default decode:true \">magick -version\r\nmagick -list format | grep -i svg<\/pre>\n<p>Die Installation zus\u00e4tzlicher Pakete sollte erst nach dieser Pr\u00fcfung erfolgen.<\/p>\n<h2>9. Fehlende Datenbank-Indizes erg\u00e4nzen<\/h2>\n<pre class=\"lang:default decode:true\">cd \/var\/www\/nextcloud\r\nsudo -u www-data php occ db:add-missing-indices<\/pre>\n<p>Bei Bedarf zus\u00e4tzlich fehlende Spalten und Prim\u00e4rschl\u00fcssel erg\u00e4nzen:<\/p>\n<pre class=\"lang:default decode:true\">sudo -u www-data php occ db:add-missing-columns\r\nsudo -u www-data php occ db:add-missing-primary-keys\r\nsudo -u www-data php occ db:add-missing-indices<\/pre>\n<p>Alle <code>occ<\/code>-Befehle werden als Benutzer <code>www-data<\/code> ausgef\u00fchrt, da Nextcloud unter diesem Benutzer l\u00e4uft.<\/p>\n<h2>10. Dienste neu starten \u2013 Referenz<\/h2>\n<table>\n<thead>\n<tr>\n<th>\u00c4nderung an<\/th>\n<th>Befehl<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>PHP-FPM \/ PHP-Erweiterungen<\/td>\n<td><code>sudo systemctl restart php8.4-fpm<\/code><\/td>\n<\/tr>\n<tr>\n<td>Apache-Konfiguration (klein)<\/td>\n<td><code>sudo systemctl reload apache2<\/code><\/td>\n<\/tr>\n<tr>\n<td>Apache-Konfiguration (umfangreich)<\/td>\n<td><code>sudo systemctl restart apache2<\/code><\/td>\n<\/tr>\n<tr>\n<td>Redis-eigene Konfiguration<\/td>\n<td><code>sudo systemctl restart redis-server<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>11. Abschlusskontrolle<\/h2>\n<table>\n<thead>\n<tr>\n<th>Pr\u00fcfung<\/th>\n<th>Befehl<\/th>\n<th>Erwartetes Ergebnis<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>PHP-FPM Status<\/td>\n<td><code>systemctl status php8.4-fpm --no-pager<\/code><\/td>\n<td><code>active (running)<\/code><\/td>\n<\/tr>\n<tr>\n<td>Apache Status<\/td>\n<td><code>systemctl status apache2 --no-pager<\/code><\/td>\n<td><code>active (running)<\/code><\/td>\n<\/tr>\n<tr>\n<td>PHP-Version<\/td>\n<td><code>php -v<\/code><\/td>\n<td>PHP 8.4.x<\/td>\n<\/tr>\n<tr>\n<td>APCu<\/td>\n<td><code>php -m | grep -i apcu<\/code><\/td>\n<td><code>apcu<\/code><\/td>\n<\/tr>\n<tr>\n<td>Redis-PHP-Erweiterung<\/td>\n<td><code>php -m | grep -i redis<\/code><\/td>\n<td><code>redis<\/code><\/td>\n<\/tr>\n<tr>\n<td>Redis-Verbindung<\/td>\n<td><code>redis-cli -h 127.0.0.1 -p 6379 ping<\/code><\/td>\n<td><code>PONG<\/code><\/td>\n<\/tr>\n<tr>\n<td>OPcache-Puffer<\/td>\n<td><code>php -i | grep opcache.interned_strings_buffer<\/code><\/td>\n<td><code>=&gt; 32 =&gt; 32<\/code><\/td>\n<\/tr>\n<tr>\n<td>Nextcloud lokaler Cache<\/td>\n<td><code>sudo -u www-data php \/var\/www\/nextcloud\/occ config:system:get memcache.local<\/code><\/td>\n<td><code>\\OC\\Memcache\\APCu<\/code><\/td>\n<\/tr>\n<tr>\n<td>Nextcloud Locking-Cache<\/td>\n<td><code>sudo -u www-data php \/var\/www\/nextcloud\/occ config:system:get memcache.locking<\/code><\/td>\n<td><code>\\OC\\Memcache\\Redis<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h2>Ergebnis<\/h2>\n<pre>Apache\r\n    \u2502\r\n    \u2502 FastCGI\r\n    \u25bc\r\nPHP-FPM 8.4\r\n    \u2502\r\n    \u251c\u2500\u2500 OPcache\r\n    \u251c\u2500\u2500 APCu\r\n    \u251c\u2500\u2500 Redis-Erweiterung\r\n    \u2502\r\n    \u25bc\r\nNextcloud Hub 35\r\n    \u2502\r\n    \u2514\u2500\u2500 Redis 127.0.0.1:6379\r\n<\/pre>\n<p>PHP-FPM \u00fcbernimmt die PHP-Verarbeitung der Nextcloud-Webanwendung. OPcache stellt den PHP-Bytecode-Cache bereit, APCu \u00fcbernimmt den lokalen Nextcloud-Cache und Redis die transaktionalen Dateisperren. Damit sind die wesentlichen PHP- und Cache-Komponenten f\u00fcr eine Nextcloud-Hub-35-Installation unter Debian 13 eingerichtet.<\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2821 alignleft\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2014\/08\/CC_BY_NC_SA.png\" alt=\"CC_BY_NC_SA\" width=\"65\" height=\"23\" \/>by Speefak | <a href=\"https:\/\/blog.bogdancaraman.com\/deploying-nextcloud-debian-13-trixie\/\" target=\"_blank\" rel=\"noopener\">blog.bogdancaraman.com<\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dieses Tutorial beschreibt die Einrichtung und Optimierung einer Nextcloud-Hub-35-Installation unter Debian 13. Die PHP-Verarbeitung erfolgt \u00fcber PHP-FPM 8.4 in Verbindung mit Apache. Zus\u00e4tzlich werden OPcache, APCu und Redis eingerichtet. Dadurch werden die typischen Warnungen der Nextcloud-Administrationsoberfl\u00e4che zu PHP, Caching und transaktionalen Dateisperren behoben. Umgebung Debian 13 Nextcloud Hub 35 Apache 2 PHP 8.4 \/ PHP-FPM [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,108,52,40],"tags":[],"class_list":["post-8959","post","type-post","status-publish","format-standard","hentry","category-anleitungen","category-nextcloud","category-php-scripte","category-server"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"speefak","author_link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/author\/speefak_oss\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/anleitungen\/\" rel=\"category tag\">Anleitungen<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/nextcloud\/\" rel=\"category tag\">Nextcloud<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/php-scripte\/\" rel=\"category tag\">PHP<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/server\/\" rel=\"category tag\">Server<\/a>","rttpg_excerpt":"Dieses Tutorial beschreibt die Einrichtung und Optimierung einer Nextcloud-Hub-35-Installation unter Debian 13. Die PHP-Verarbeitung erfolgt \u00fcber PHP-FPM 8.4 in Verbindung mit Apache. Zus\u00e4tzlich werden OPcache, APCu und Redis eingerichtet. Dadurch werden die typischen Warnungen der Nextcloud-Administrationsoberfl\u00e4che zu PHP, Caching und transaktionalen Dateisperren behoben. Umgebung Debian 13 Nextcloud Hub 35 Apache 2 PHP 8.4 \/ PHP-FPM&hellip;","_links":{"self":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8959","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/comments?post=8959"}],"version-history":[{"count":3,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8959\/revisions"}],"predecessor-version":[{"id":8963,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/8959\/revisions\/8963"}],"wp:attachment":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/media?parent=8959"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/categories?post=8959"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/tags?post=8959"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}