PDF-Vorschau in TYPO3 bei IONOS konfigurieren

Installiert man TYPO3 im Managed-Hosting Umfeld von IONOS steht eine praktische Funktion nicht "out of the box" zur Verfügung. Es geht um die Funktion zum Lesen von PDF-Dokumenten, welche in der Dateiliste eine Vorschau des Inhalts generiert und im Frontend genutzt werden kann, um PDFs als Bilder einzubinden oder eine Vorschau für den Dateidownload zur Verfügung zu stellen. Dieses Problem tritt bei jeder Art von Installation auf, egal ob man sie mit Click&Build im Kundenmenü oder manuell durchführt.

Fehlermeldung im Install Tool

Image generation failed
ImageMagick / GraphicsMagick handling is enabled, but the execute command returned an error. Please check your settings, especially ['GFX']['processor_path'] and ['GFX']['processor_path_lzw'] and ensure Ghostscript is installed on your server.

Analyse

Die Überprüfung der Funktionalität ist relativ einfach, unter Verwaltungswerkzeuge ist im Backend der Punkt Umgebung zu finden. Darin sind unterschiedliche Test hinterlegt, um die Laufzeitumgebung der Installation zu überprüfen. Sie sind zusätzlich jederzeit über das Install Tool erreichbar. Setzt man ein System neu auf lohnt sich der Blick in die einzelnen Unterpunkte, um eventuelle Probleme mit dem Grundsystem zu identifizieren.

Für das benannte Problem ist ist das Tool Test images relevant. Scrollt man ein Stück nach unten, ist leicht erkennbar, dass etwas nicht funktionert.
Es werden auch schon Hinweise ausgegeben, wie dieser Fehler zu beheben ist. Leider helfen sie in diesem Fall nicht weiter, der processor_path_lzw ist korrekt konfiguriert und GhostScript (gs) ist auf dem System verfügbar.

Führt man jedoch den etwas sperrigen Befehl auf der Kommanzozeile des Servers aus

Convert-Kommando aus Install Tool
/usr/bin/convert -interlace None -auto-orient +profile '*' -auto-orient -geometry 300x425! -colorspace RGB -quality 85 -colorspace RGB 'pdf:/kunden/homepages/12/d123456789/htdocs/clickandbuilds/TYPO3/MyCMS-Test/typo3/sysext/install/Resources/Public/Images/TestInput/Test.pdf[0]''/kunden/homepages/12/d123456789/htdocs/clickandbuilds/TYPO3/MyCMS-Test/typo3temp/assets/images/installTool-read629e2607b1a24501710663-pdf.jpg'

erhält man eine hilfreiche Fehlermeldung:

Fehlermeldung
convert: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.
convert: no images defined `/kunden/homepages/12/d123456789/htdocs/clickandbuilds/TYPO3/MyCMS-Test/typo3temp/assets/images/installTool-read6262e73bf1e46571713792-pdf.jpg' @ error/convert.c/ConvertImageCommand/3258.

Lösung

Ein Ansatz zur Lösung des Problem ist im IONOS Hilfe-Center im Artikel "ImageMagick nutzen" zu finden. Die Verarbeitung von PDFs muss durch das Anlegen der Datei policy.xml erst im jeweiligen Hosting-Paket freigegeben werden. Aus Sicherheitsgründen ist dies standardmäßig deaktiviert.

Befolgt man die Schritte 1 und 2 sollte der oben beschriebene Befehl, spätestens nach erneuter Anmeldung am Server, ohne Fehlermeldung seinen Dienst verrichten. Damit die Lösung auch im PHP-Code funktioniert, muss vor jedem Aufruf, wie im Punkt 3 des Artikels beschrieben, die Umgebungsvariable HOME gesetzt werden.

Wohin damit in einer TYPO3-Installation, da php.ini und .htaccess keine Option sind?

Die index.php Datei sollte nicht verändert werden, da Änderungen beim nächsten Update überschrieben werden könnten. Als Alternative bietet es sich an die Datei AdditionalConfiguration.php im Ordner typo3conf zu verwenden, da diese ebanfalls bei jedem Aufruf abgearbeitet wird. Falls noch nicht vorhanden muss sie erstellt und mit folgendem Inhalt versehen werden:

AdditionalConfiguration.php
<?php

putenv("HOME=/homepages/12/d123456789/htdocs");

Ein erneuter Blick ins Install Tool zeigt, dass PDF-Dateien nun verarbeitet werden können. Der Test wird erfogreich ausgeführt und ein Bild wird ausgegeben.