Heute habe ich meine Site auf den Server hochgeladen und erhalte folgende Fehler:
Das abgeleitete Bild in public: //styles/sponsor_image/public/TerraThermaSponsorLogo.png kann nicht generiert werden.
Bildstile können keine Bilder erzeugen. Ich habe versucht, Berechtigungen für Styles / * -Ordner mit festzulegen chmod -R 775 styles/
, und es sogar versucht chmod -R 777 styles/
. Der Besitzer des Ordners ist in Ordnung. Ich verstehe nicht, was falsch sein kann.
Das mit public: // verknüpfte Verzeichnis lautet sites / default / files und ist in Ordnung.
www-data
, aber ich bekomme immer noch den Fehler. Was mache ich sonst noch? ImageMagick ist korrekt konfiguriert. Ich führe dies auf einem Server aus, auf dem viele Drupal-Installationen installiert sind.Sie sollten auch sicherstellen, dass auf Ihrem Server eine grafische Bibliothek (wie php-gd) installiert ist: check / admin / config / media / image-toolkit (D7).
quelle
Der Fehler kommt vom Image-Modul (Kern) und die Logik sieht wie folgt aus:
Daher tritt ein Fehler auf, wenn Drupal Probleme beim Generieren einer Bildableitung hat, indem alle Bildeffekte angewendet und eine zwischengespeicherte Version des resultierenden Bildes gespeichert werden.
Der einfachste Weg, das Problem (zu Diagnosezwecken) zu reproduzieren, ist Drush.
Rufen Sie image_style_create_derivative () direkt von drush aus auf:
Durch
picture-123.png
das vorhandene Bild aus dem Protokoll ersetzen :Oder verwenden Sie eine andere vorhandene, z
drush sqlq "SELECT * FROM file_managed"
.Wenn Sie keinen Zugriff auf die Shell haben, verwenden Sie das Devel-Modul, gehen Sie zu
/devel/php
und fügen Sie dort den PHP-Code ein.Hinweis: Wenn der
files
Ordner dem Apache-Benutzer gehört, sollten Sie sich zu Testzwecken als dieser Benutzer anmelden. Andernfalls stellen Sie Ihrem Drush-Befehl das Präfix vorsudo -u www-data
.Es gibt folgende Möglichkeiten.
drush eval "print_r(gd_info());"
.Debugging-Berechtigungsprobleme können leicht durch gelöst werden
strace
. Installieren Sie es und stellen Sie einfach einen Befehl voran, mit dem Sie testenstrace -f
(Sie müssen nicht root sein).Zum Beispiel:
Wenn Sie mit einem anderen Konto angemeldet sind, dessen Eigentümer Sie sind
files
, vergessen Sie nicht, Ihrem Drush-Befehl das Präfix voranzustellensudo -u www-data
, um den gesamten Befehl als Apache-Benutzer auszuführen.quelle
Dies kann auch dadurch verursacht werden, dass PHP ohne libjpeg kompiliert wird (wenn die Bilder, die nicht generiert werden, JPEG-Quellen haben). Überprüfen Sie die Ausgabe von,
gd_info()
um festzustellen, ob PHP unterstützt wird.quelle