Aujourd'hui, j'ai téléchargé mon site sur le serveur et j'obtiens des erreurs comme celles-ci:
Impossible de générer l'image dérivée située sur public: //styles/sponsor_image/public/TerraThermaSponsorLogo.png.
Les styles d'image ne peuvent pas générer d'images. J'ai essayé de définir des autorisations sur les dossiers styles / * avec chmod -R 775 styles/
, et j'ai même essayé chmod -R 777 styles/
. Le propriétaire du dossier est OK. Je ne comprends pas ce qui peut être faux.
Le répertoire associé à public: // est sites / default / files, et il est OK.
www-data
, mais je reçois toujours l'erreur. Que puis-je faire d'autre? ImageMagick est configuré correctement, je l'exécute sur un serveur qui a de nombreuses installations Drupal.Vous devez également vous assurer d'avoir une bibliothèque graphique (comme php-gd) installée sur votre serveur: vérifiez / admin / config / media / image-toolkit (D7).
la source
L'erreur vient du module Image (core) et la logique ressemble à:
Par conséquent, une erreur se produit lorsque Drupal a un problème avec la génération d'un dérivé d'image en appliquant tous les effets d'image et en enregistrant une version mise en cache de l'image résultante.
La façon la plus simple de reproduire le problème (à des fins de diagnostic) est par drush.
Appelez image_style_create_derivative () directement depuis drush:
Remplacez
picture-123.png
par l'image existante du journal:Ou utilisez n'importe quel autre, par exemple
drush sqlq "SELECT * FROM file_managed"
.Si vous n'avez pas accès au shell, utilisez le module Devel, allez
/devel/php
et collez le code PHP là-bas.Remarque: Si le
files
dossier appartient à un utilisateur Apache, vous devez vous connecter en tant que cet utilisateur à des fins de test. Sinon, préfixez votre commande drush avecsudo -u www-data
.Il existe les possibilités suivantes.
drush eval "print_r(gd_info());"
.Le débogage des problèmes d'autorisation peut être facilement réalisé par
strace
. Installez-le et préfixez simplement toute commande que vous testezstrace -f
(vous n'avez pas besoin d'être root).Par exemple:
Si vous êtes connecté avec un autre compte propriétaire
files
, n'oubliez pas de préfixer votre commande drush avecsudo -u www-data
pour exécuter la commande entière en tant qu'utilisateur Apache.la source
Cela peut également être dû à la compilation de PHP sans libjpeg (si les images qui ne généreront pas ont des sources jpeg). Vérifiez la sortie de
gd_info()
pour voir s'il existe un support PHP.la source