Hello,
ich möchte mit imagick automatisch Thumbnails von Bildern in einem Verzeichnis erstellen und im Unterverzeichnis "/thumbs" speichern. Das mache ich so:
$bild = new Imagick($gallery_folder.$datei);
$bild->cropThumbnailImage($thumbs_size,$thumbs_size);
$bild->writeImage($thumbs_folder.$datei);
>
> Vorher wird geprüft, ob das Unterverzeichnis "/thumbs" existiert. Wenn nicht, wird es erstellt:
>
> ~~~php
> mkdir($thumbs_folder);
> chmod($thumbs_folder, 0777);
>
Der Witz ist jetzt, dass imagick (bzw. writeImage) sich in diesem Fall mit folgender Meldung verabschiedet:
Fatal error: Uncaught exception 'ImagickException' with message 'Safe mode restricts user to read image:
Der Fehler ist ganz klar benannt: Der Safe-Mode ist eingeschaltet.
Dann muss das Script, dass die Manipulation durchführen soll, denselben Owner haben, wie die Datei, die manipuliert werden soll oder das Verzeichnis, in dem sie gespeichert ist.
Daher funktioniert das mit dem durch FTP angelegten Verzeichnis. Das hat den FTP-User als Eigentümer. Das Script wirst Du vermutlich auch mit FTP hochgeladen haben. Dann hat es auch den FTP-User als Owner.
Nun müsstest Du überlegen, wie Du den Owner des Scripts ändern kannst. Das wäre z.B. dadurch zu erreichem, indem Du es auf dem Server einfach mittels eines PHP-Scriptes kopierst.
Das dafür benötigte Kopierscript solltest Du allerdings durch ein langes Passwort schützen, oder hinterher sofort wieder entfernen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg