Сегодня я загрузил свой сайт на сервер, и у меня появляются такие ошибки:
Невозможно сгенерировать производное изображение, расположенное по адресу public: //styles/sponsor_image/public/TerraThermaSponsorLogo.png.
Стили изображений не могут генерировать изображения. Я пытался установить разрешения для папок styles / * с chmod -R 775 styles/
, и даже пытался chmod -R 777 styles/
. Владелец папки в порядке. Я не понимаю, что может быть не так.
Каталог, связанный с public: // это sites / default / files, и это нормально.
www-data
, но я все еще получаю ошибку. Что еще мне делать? ImageMagick настроен правильно, я запускаю это на сервере, который имеет много установок Drupal.Вы также должны убедиться, что на вашем сервере установлена графическая библиотека (например, php-gd): check / admin / config / media / image-toolkit (D7).
источник
Ошибка исходит от модуля Image (ядро) и логика выглядит так:
Поэтому ошибка возникает, когда в Drupal возникают проблемы с генерацией производной изображения путем применения всех эффектов изображения и сохранения кэшированной версии полученного изображения.
Самый простой способ воспроизвести проблему (для целей диагностики) - это использовать метод drush.
Вызовите image_style_create_derivative () непосредственно из drush:
Заменить
picture-123.png
существующей картинкой из журнала:Или используйте любой другой существующий, например
drush sqlq "SELECT * FROM file_managed"
.Если у вас нет доступа к оболочке, используйте модуль Devel, перейдите
/devel/php
и вставьте туда код PHP.Примечание. Если
files
папка принадлежит пользователю Apache, вы должны войти в систему как этот пользователь для тестирования. В противном случае добавьте к вашей команде drush префиксsudo -u www-data
.Есть следующие возможности.
drush eval "print_r(gd_info());"
.Проблемы с разрешениями отладки могут быть легко достигнуты
strace
. Установите его и просто введите префикс любой команды, с которой вы тестируетеstrace -f
(вам не нужно быть пользователем root).В примере:
Если вы вошли в систему с другой учетной записью, которая владеет
files
, то не забудьте добавить префикс вашей команды drushsudo -u www-data
для запуска всей команды от имени пользователя Apache.источник
Это также может быть вызвано тем, что PHP компилируется без libjpeg (если изображения, которые не будут генерироваться, имеют источники jpeg). Проверьте выходные данные,
gd_info()
чтобы увидеть, есть ли поддержка PHP.источник