Bildverarbeitung und Medien
Diese Seite ist für Systemadministratoren und Support-Mitarbeitende bei einem Hosting-Anbieter. Sie beantwortet: Welche
Bildbibliotheken und Programme ein Exponential-Server braucht, wie Bilder und ihre Varianten gespeichert werden, welche
Uploads akzeptiert werden, was Velocity hinzufügt und welche PHP- und Berechtigungseinstellungen Medien betreffen. Die
Einstellungen stehen in settings/image.ini; die Zusammenfassung für den Betrieb ist
Kapitel 10.8.
Inhalt
- Was der Server braucht
- Die Konverter und ihre Reihenfolge
- Bild-Aliase und Speicher
- Uploads: Typen, Prüfung und Grenzen
- Die Bildverarbeitung von Velocity
- Berechtigungen für Medien
- Befehle
- Checkliste
- Verwandte Seiten
Was der Server braucht
| Element | Gebraucht für | Geprüft von |
|---|---|---|
GD (Erweiterung gd, imagegd2()) oder ImageMagick (convert) | Bildvarianten; mindestens eines ist erforderlich | kritischer Test image_conversion (Require=one) |
| Sowohl GD als auch ImageMagick | GD für die üblichen Formate im Prozess, ImageMagick für Formate, die GD nicht lesen kann | empfohlen (Kapitel 2) |
GD mit FreeType (imagettftext(), imagettfbbox()) | den Template-Operator Text-zu-Bild | optionaler Test texttoimage_functions |
fileinfo | den Typ eines hochgeladenen Bildes aus seinem Inhalt lesen | [ImageUploadSettings]; Systeminformationen warnen, wenn es fehlt |
system() nicht deaktiviert | der ImageMagick-Konverter führt convert darüber aus | siehe PHP-Einstellungen für Exponential |
Der Setup-Assistent sucht convert in /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin und
/usr/local/sbin und schaltet den ImageMagick-Konverter ab, wenn er keines findet. Prüfen Sie mit convert -version
und php --ri gd.
Die Konverter und ihre Reihenfolge
settings/image.ini, [ImageConverterSettings] ImageConverters[] listet die Konverter in Reihenfolge auf; der erste,
der ein Bild verarbeiten kann, wird genutzt:
ImageConverters[]
ImageConverters[]=GD
ImageConverters[]=ImageMagick- GD kommt zuerst: Es ist in PHP eingebaut, konvertiert im Prozess, ohne pro Bild ein Programm zu starten, und liest und schreibt JPEG, PNG, GIF und WBMP.
- ImageMagick ist die Rückfallebene für Formate, die GD nicht lesen kann (zum Beispiel PSD, TIFF, PDF oder WebP), und
für Filter, die nur es unterstützt. Es übernimmt vollständig, wenn GD fehlt oder
[GD] IsEnabled=falsegesetzt ist. [ImageMagick] ExecutablePath(leer: der Suchpfad) undExecutable(convert) finden das Programm.
Um ImageMagick zu bevorzugen, überschreiben Sie die Liste in settings/override/image.ini.append.php mit ImageMagick
zuerst.
[ImageConverterSettings] LockTimeout (mitgeliefert 60) ist, wie viele Sekunden ein Prozess wartet, während ein anderer
denselben Alias erzeugt; danach beendet der wartende Prozess den anderen und erzeugt den Alias selbst.
Bild-Aliase und Speicher
- Hochgeladene Bilder liegen im Speicherverzeichnis der Website,
var/<site var dir>/storage/images(image.ini [FileSettings] PublishedImages=images; Entwürfe und archivierte Versionen inimages-versioned). - Ihre Varianten, die Aliase, werden bei der ersten Verwendung erzeugt.
[AliasSettings] AliasList[]benennt sie (reference,small,tiny,medium,large,rssund die des Designs der Website). [OutputSettings] AllowedOutputFormat[]listet die Formate auf, die Seiten zeigen dürfen: JPEG, PNG, WebP und GIF.- Temporäre Bilddateien landen im Unterverzeichnis
imagetmpdes Caches ([FileSettings] TemporaryDir).
Für einen Hoster heißt das: Der Bildspeicher wächst mit den Uploads und mit der Anzahl der Aliase, die ein Design definiert, und der erste Aufruf einer neuen Seite kann CPU kosten, während ihre Varianten erzeugt werden.
Uploads: Typen, Prüfung und Grenzen
image.ini [ImageUploadSettings] entscheidet, welche hochgeladenen Dateien als Bilder akzeptiert werden, auf jedem Weg
(das Bearbeitungsformular, das Upload-Modul, der Rich-Text-Editor, der AJAX-Uploader, WebDAV, Importe):
| Schlüssel | Mitgeliefert | Bedeutung |
|---|---|---|
ValidateMIMEType | enabled | der Typ wird mit fileinfo aus dem Inhalt der Datei gelesen, nicht aus ihrem Namen |
AllowedMIMETypes[] | JPEG, PNG, GIF, WebP, AVIF, TIFF, BMP, SVG | eine abgelehnte Datei wird nicht gespeichert |
SanitizeSVG | enabled | ein SVG wird als Ausgabe des Bereinigers gespeichert, ohne Skript, Ereignisattribute, foreignObject oder externe Verweise; SVG-Aliase werden nie skaliert |
Liefern Sie SVG-Dateien mit den Headern aus SVG-Bilder aus.
Die Upload-Größe ist die von PHP: upload_max_filesize und post_max_size müssen so groß sein wie die größte Datei,
die Kunden hochladen; Exponential prüft sie nicht. Nennen Sie die Grenze im Tarif und setzen Sie sie im Pool
(PHP-Einstellungen für Exponential).
Die Bildverarbeitung von Velocity
Wenn Velocity die Website ausliefert, beantwortet er statische Dateien selbst und kann Bilder auf Anfrage in der Größe ändern (Statische Dateien und Bilder in Velocity):
?w=400oder?h=300an einer Bild-URL ändert die Größe, nie über die Größe der Quelle hinaus; für Browser, die es akzeptieren, wird AVIF oder WebP gewählt;Save-Data: onsenkt die Qualität.- Ergebnisse werden zwischengespeichert;
Q.images.cache.maxSize(mitgeliefert 268435456 Byte) begrenzt den Cache. - Es braucht GD in PHP (ohne GD wird das Original ausgeliefert), WebP-Unterstützung in GD für WebP und
imageavif()(PHP 8.1 mit libavif) für AVIF.
Das ist getrennt von den Bild-Aliasen des Kernels oben, die unter jedem Webserver funktionieren.
Berechtigungen für Medien
image.ini [FileSettings] hat eigene Modi für Bildverzeichnisse und -dateien, mitgeliefert für alle beschreibbar:
# settings/override/image.ini.append.php
[FileSettings]
DirPermissions=0770
ImagePermissions=0660image.ini selbst bevorzugt 0770 und 0660 mit dem richtigen Benutzer und der richtigen Gruppe. Jeder Prozess, der
einen Alias erzeugen darf (das Web-PHP, die Worker von Velocity, Cron und die Konsole), muss in das Speicherverzeichnis
schreiben können; siehe Beschreibbare Verzeichnisse und Berechtigungen.
Befehle
Nachdem sich die Definition eines Alias geändert hat, entfernen Sie die erzeugten Varianten, damit sie neu erzeugt werden:
php bin/php/cache.php imagealias clear --allow-root-userDasselbe gibt es in der Konsole als exp:cache imagealias. Bilder und ihre Varianten gehören zu var/storage, das
jedes Backup enthalten muss (Was gesichert werden muss).
Checkliste
- To do: GD (mit FreeType) und ImageMagick installiert;
convert -versionundphp --ri gdantworten. - To do:
fileinfoim Web-PHP und im PHP der Kommandozeile geladen. - To do:
systemnicht indisable_functions, wo ImageMagick genutzt wird. - To do: Upload-Grenzen gesetzt und im Tarif genannt.
- To do: Modi in
image.ini [FileSettings]gehärtet. - To do:
var/storagein Backups und in der Überwachung des Speicherplatzes enthalten.
Verwandte Seiten
- Kapitel 10.8: Suchindizierung und Bildverarbeitung
- Medien und Uploads (für Redakteure)
- Statische Dateien und Bilder in Velocity
- Speicher, CPU und Festplatte dimensionieren
- CDN
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.