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

Hallo liebe Community,

bisher konnte ich mit der dieser Anleitung den HEIC Support einrichten und aktivieren: 5 minutes to Install Imagemagick with HEIC support on Ubuntu 20.04 (and 18.04) DigitalOcean | Medium

Doch leider funktioniert das nun nicht mehr. Alle .heic Bilder haben auf der Nextcloud keine Vorschau. Klickt man ein Bild an, wird es direkt heruntergeladen.
In der Nextcloud config ist HEIC als preview eingetragen.
Ich bin ratlos, zumal ich auch keine Fehlermeldungen erhalte oder finde. Die Installation läuft normal durch und alle benötigten Komponenten scheinen installiert worden sein. Die Suche hier habe ich bereits verwendet. Doch habe ich leider nichts brauchbares gefunden.
Nun hoffe ich, dass hier eventuell jemand eine Vermutung hat und mir einen Tip geben kann.

Wird dir vermutlich nicht helfen, in meiner Konfiguration Debian 12 und Apache mit PHP 8.2 habe ich HEIC support ohne etwas zu patchen. Du solltest mehr Informationen über deine Konfiguration bekanntgeben.

Danke für deine Antwort.
Wenn ich wüsste welche Informationen dafür relevant sind, mache ich das natürlich gerne.

Ich habe mit dem Befehl convert -version geprüft ob und welche Version von ImageMagick installiert ist. Die Version müsste passen.
Version: ImageMagick 6.9.11-60 Q16 x86_64 2021-01-25 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
License: ImageMagick – License
Features: Cipher DPC Modules OpenMP(4.5)
Delegates (built-in): bzlib djvu fftw fontconfig freetype heic jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png tiff webp wmf x xml zlib

Was meinst du mit HEIC Support, öffnen von HEIC-Dateien in Nextcloud ?

Korrekt. Ich sehe keine Vorschau von Heic-Dateien. Öffnen geht auch nicht. Die Datei wird einfach nur heruntergeladen.

Hallo,
hast du mittlerweile eine Lösung?
Bei mir will es auch einfach nicht. Ich denke ich habe bereits alles installiert. was notwendig ist, aber ich komme nicht drauf…

php -r 'phpinfo();' | grep HEIC bringt keinen Eintrag.
heif-gdk-pixbuf/focal,now 1.6.1-1build1 amd64 [installed]
heif-thumbnailer/focal,now 1.6.1-1build1 amd64 [installed]
libheif-dev/focal,now 1.6.1-1build1 amd64 [installed]
libheif1/focal,now 1.6.1-1build1 amd64 [installed]

php8.2-imagick/focal,now 3.7.0-4+ubuntu20.04.1+deb.sury.org+2 amd64 [installed]

Schöne Grüße
Stefan

Leider nein.
Ich habe jetzt schon mehrmals Nextcloud testweise als VM nochmals mit Debian 12 und Ubuntu 22.04 aufgesetzt und immer werden die HEIC Dateien nicht angezeigt. Irgendetwas mache ich falsch oder vergesse ich. Ich komme aber nicht darauf. Als nächstes installiere ich es mal als Docker Container. Mal sehen.

Oh man…
Danke für deine Rückmeldung. Würde mich über eine Info freuen sobald du es hinbekommen hast. Ich probiere es derweil auch weiter.
Schöne Grüße

Hiermit hat es geklappt bei mir:
Anleitung

Allerdings schmiert das ganze hin und wieder ab, sodass ich NGINX und PHP-FPM Neustarten muss.
Schöne Grüße

Hast du das mit dem Script am Ende gemacht oder manuell alle Befehle eingegeben?
Ich habe das mit dem Script in der Vergangenheit bereits mehrmals versucht und hat bei mir leider nichts gebracht.

Ich bin/war mir sicher ich hätte das auch schon gemacht, daher hab ich es einfach noch einmal komplett durchlaufen lassen.

Du kannst mal ausprobieren, ob die App HEIC/HEIF Image Converter funktioniert.
Diese nutzt/benötigt ImagickMagick und PHP Imagick.

Wäre ein mögliches Anzeichen, dass diese nicht funktionieren.

grafik

Hab vor der Installation heute über:

php -r 'phpinfo();' | grep HEIC

keinen Eintrag angezeigt bekommen. Das gibt nach der Installation heute nun etwas aus.

Ob das wirklich in den PHP Module auftaucht, kann ich dir nicht sagen.
Aber die Module brauchst du.

Wie gesagt, bei mir läuft es mittlerweile. Ich bekomme jetzt allerdings immer wieder mehrere upstream timed out (110: Connection timed out). Ich weiß aber nicht genau woran das liegt.
/apps/photos/api/v1/preview/128351?etag=c3ba390ff79a11e87766be445624cb52&x=512&y=512
Denke es liegt an der Erstellung der reviews. Nginx habe ich ein wenig angepasst und die Settings gesetzt:

fastcgi_read_timeout 180;
proxy_read_timeout 180;

Hab das Gefühl das hat ein wenig geholfen…
Im Netz hab ich gefunden, dass manche diesen auf eine Stunde setzen, ich werde aber einen Teufel tun das zu machen…

Wahrscheinlich, weil es so in der offiziellen Dokumentation steht: https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html#configuring-your-web-server

Das bleibt natürlich dir überlassen :wink:

php_value max_input_time 3600
php_value max_execution_time 3600

Diese Werte sind auch besonders wichtig für den intern Updater, falls der Download der nextcloud-*.zip bei einer schlechten Internetverbindung einmal länger dauert. Seitdem gab es auch keine Abbrüche mehr bei mir.

Das Modul ist für die Anzeige von *.heic Dateien essenziell.

Hier auch noch ein Auszug aus meiner config.php.

  'enable_previews' => true,
  'preview_max_x' => 2048,
  'preview_max_y' => 2048,
  'preview_max_memory' => 4096,
  'preview_max_filesize_image' => 256,
  'enabledPreviewProviders' => [
	0 => 'OC\\Preview\Imaginary',
	1 => 'OC\\Preview\\Image',
	2 => 'OC\\Preview\\HEIC',
    3 => 'OC\\Preview\\TIFF',
    4 => 'OC\\Preview\\Movie',
    5 => 'OC\\Preview\\MKV',
    6 => 'OC\\Preview\\MP4',
    7 => 'OC\\Preview\\AVI',
	8 => 'OC\\Preview\XBitmap',
	9 => 'OC\\Preview\MP3',
	10 => 'OC\\Preview\TXT',
	11 => 'OC\\Preview\MarkDown',
	12 => 'OC\\Preview\OpenDocument',
	13 => 'OC\\Preview\Krita',
  ],  

Der erste Punkt " 0 => ‘OC\Preview\Imaginary’," muss weg und kann nur mit Imaginary verwendet werden.

Beispiel aus einem Synology NAS mit Imaginary im Docker:

  'preview_imaginary_url' => 'http://192.168.1**.1**:9000',
  'preview_ffmpeg_path' => '/volume1/@appstore/ffmpeg6/bin/ffmpeg',

Bei deinem Link geht es aber um dem php_value max_input_time 3600 nicht um den timeout bei NGINX. Ich bekomme keinen PHP timeout.

Sorry ja, da hast du natürlich recht, das sind die PHP Settings, nicht die NGINX Settings.

Trotzdem bleibt die Frage warum du es nicht wenigstens mal testweise mit deutlich höheren Werten versuchst. Denkst du nicht es hat einen Grund, das andere das so machen? :wink:

Hier mal ein Beispiel: https://www.c-rieger.de/nextcloud-installationsanleitung/#c01

Der relevante Teil:

fastcgi_request_buffering off;
fastcgi_read_timeout 3600;
fastcgi_send_timeout 3600;
fastcgi_connect_timeout 3600;
fastcgi_max_temp_file_size 0;