Kein HEIC support für Nextcloud 27 mit PHP 8.2 und nginx auf Debian 12 Bookworm

Ich hab es mal hochgesetzt, allerdings auf 360 nicht gleich auf 3600. Ich meine mich zu erinnern, dass es bei zu langen timeout Zeiten Sicherheitsbedenken gibt. Vorsicht ist im Bereich Sicherheit immer besser als Nachsicht.

Die Frage ist halt am Ende des Tages warum es überhaupt zu einem upstream timed out (110: Connection timed out) kommt.

Ich bin kein Experte aber ich denke schon auch, dass das massive Erhöhen des fastcgi_read_timeout eher ein Workaround ist, um etwas zu verhindern, dass gar nicht erst auftreten sollte. Ob es tatsächlich auch ein Sicherheitsproblem darstellt, kann ich nicht beurteilen.

Gründe warum der Webserver in ein Timeout läuft, können z.B. eine hohe CPU Last des Servers sein (evtl. wegen zuvielen PHP-FPM Prozessen), eine langsame Datenbankverbindung, langsames Storage, hohe RAM Auslastung (auch wieder wegen vieler gleichzeitiger Prozesse). Oder halt eben das Backend selbst (Nextcloud), welches aus was für Gründen auch immer, die Requests nicht besser handeln kann, und es deshalb diese hohen Timeoutwerte zwingend braucht.

Was kann dagegen helfen?

  • Klar erstmal die Timeouts erhöhen, bis zu einem gewissen Punkt warscheinlich zwingend mit Nextcloud als Backend.

  • Mehr RAM, mehr CPU Kerne, schnelleres Storage

  • PHP Prozesse optimieren: https://spot13.com/pmcalculator/

  • Und, falls du es noch nicht getan hast, mal versuchen PHP-FPM auf “ondemand” anstatt “dynamic” zu stellen in der www.conf.

; Choose how the process manager will control the number of child processes.
; Possible Values:
;   static  - a fixed number (pm.max_children) of child processes;
;   dynamic - the number of child processes are set dynamically based on the
;             following directives. With this process management, there will be
;             always at least 1 children.
;             pm.max_children      - the maximum number of children that can
;                                    be alive at the same time.
;             pm.start_servers     - the number of children created on startup.
;             pm.min_spare_servers - the minimum number of children in 'idle'
;                                    state (waiting to process). If the number
;                                    of 'idle' processes is less than this
;                                    number then some children will be created.
;             pm.max_spare_servers - the maximum number of children in 'idle'
;                                    state (waiting to process). If the number
;                                    of 'idle' processes is greater than this
;                                    number then some children will be killed.
;             pm.max_spawn_rate    - the maximum number of rate to spawn child
;                                    processes at once.
;  ondemand - no children are created at startup. Children will be forked when
;             new requests will connect. The following parameter are used:
;             pm.max_children           - the maximum number of children that
;                                         can be alive at the same time.
;             pm.process_idle_timeout   - The number of seconds after which
;                                         an idle process will be killed.
; Note: This value is mandatory.
pm = ondemand

Danke für die ausführliche Auflistung und Beschreibung. Ich werde es auf jeden Fall mal im Auge behalten und die Logs mal öfter durchgehen.
Wie gesagt, danke!

Bei mir funktioniert es leider noch immer nicht. Und komme nicht darauf was es sein könnte.
Frage an alle diejenigen wo Heic-Dateien angezeigt werden:
Nutzt ihre nginx oder Apache2 ?

Bei mir werden HEIC-Dateien korrekt angezeigt und ich verwende Apache 2.4

Gerade mit einer neuen Installation ausprobiert und funktioniert einwandfrei.
grafik

Debian Bookworm und mit diesem Script.
https://s2011.de/nc_doku2/nc_install.php

grafik

Womit installierst du Nextcloud oder nach welcher Anleitung?

Ich habe diese Anleitung verwendet. Das hat bis jetzt auch einwandfrei funktioniert.
Nextcloud Installationsanleitung - Carsten Rieger IT-Services (c-rieger.de)

Danke für den Link. Den kannte ich noch gar nicht. Werde es mir mal anschauen. Eventuell komme ich dann darauf was noch fehlt.

1 Like

Hast du es mittlerweile gelöst?

Edit: [Solved] Image Previews only working for HEIC photos - #8 by Lucas_E hat es für mich gelöst.

Wobei ich immernoch gespannt bin auf die “Privacy concerns” die zum Deaktivieren vom HEIC-Preview-Support im Standard geführt haben (siehe https://github.com/nextcloud/server/pull/28079).

Ich habe mir in der config.php die Preview Proiders angeschaut.
Folgende sind bei mir eingetragen gewesen:

‘OC\Preview\PNG’,
‘OC\Preview\JPEG’,
‘OC\Preview\GIF’,
‘OC\Preview\BMP’,
‘OC\Preview\XBitmap’,
‘OC\Preview\MP3’,
‘OC\Preview\TXT’,
‘OC\Preview\MarkDown’,
‘OC\Preview\OpenDocument’,
‘OC\Preview\Krita’,

Also habe ich die Zeile " ‘OC\Preview\HEIC’, " eingefügt und den Server neugestartet.
Danach hat diese Zeile wieder gefehlt. Irgendetwas setzt bei mir dies Preview Provider wieder zurück. :face_with_raised_eyebrow::face_vomiting:

Update: Die App Erinnerungen (Memories) überschreibt die Preview Provider, wenn man in den Einstellungen der App etwas ändert.

So ich habe des Rätsels Lösung:
Ich hatte mit Herrn Rieger von c-rieger.de E-Mail Kontakt.
Das Installationsskript , das er bereitstellt, legt zwei Nextcloud config-Dateien an. Eine config.php und eine tweaks.config.php.
Die “Preview Proiders” sind in tweaks.config.php gewandert und müssen dort angepasst werden. Trägt man sie in config.php ein, werden diese ignoriert.
Es hat sich herausgestellt, dass in diesem Skript der Eintrag " ‘OC\Preview\HEIC’, " gefehlt hat. Dies wurde nun korrigiert.