Проблема с Image (не загружаются фото в папки стилей изображения)

27 апреля 2018 в 13:39
Аватар пользователя Kaylang Kaylang 0 32

Доброго времени суток!

Помогите, пожалуйста, разобраться с проблемой.

Drupal 8.5.3
ОС - Линукс
Сервер - Apache2+php7.1+mariadb

Есть типы данных, в которых присутствуют поля типа Image. В настройках поля указана папка для загрузки изображения (files/images). В настройках отображения для "Default" выбран формат Image и стиль изображения "Large (480 x 480)", для "Анонс" выбран формат Image и стиль изображения "Medium (220 x 220)".

При создании материала и загрузке изображений происходит следующее: в папку "/sites/default/files/images/" изображение загружается, а в папки "/sites/default/files/styles/medium/public/images" и "/sites/default/files/styles/large/public/images" изображения не грузятся, соответственно не отображаются в материале (показывает альтернативный текст из поля Alt).

И нет никаких ошибок, ни в логах Drupal, ни в логах Апача.

Права на папку /sites/default/files/styles/ - 775 (владелец www-data:www-data).

Комментарии

Так у вас указана папка files/images, а вы ищите картинки /sites/default/files/styles/medium/public/image, наверное нужно создать files/images или указать иную папку

27 апреля 2018 в 17:43

loup54 wrote:

Так у вас указана папка files/images, а вы ищите картинки /sites/default/files/styles/medium/public/image, наверное нужно создать files/images или указать иную папку


В том-то и дело, что изображения после обработки стилями изображения помещаются в папки /sites/defaults/styles/Стиль_изображения/public/путь_указанный_в_поле_Image, в зависимости от выбранного стиля.

При отсутствии, папки внутри styles/public должны создаваться автоматически. В моём случае папки images автоматически не создались. Но даже после создания их вручную, изображения туда не копируются.

ЗЫ. И, таки, да, папка /files/images существует и туда оригинальные изображения копируются.

27 апреля 2018 в 18:44

Вообщем, если папка явно указана то картинки туда и сохраняются вне зависимости от стиля, но и в стилях должна быть одноименная папка с обработанной картинкой, просто я к тому, что у вас папка прописана как images, вот и должна там быть /sites/default/files/styles/medium/public/images, а не /sites/default/files/styles/medium/public/image.
Пропишите просто images , а не files/images

27 апреля 2018 в 19:10

loup54 wrote:

Вообщем, если папка явно указана то картинки туда и сохраняются вне зависимости от стиля, но и в стилях должна быть одноименная папка с обработанной картинкой, просто я к тому, что у вас папка прописана как images, вот и должна там быть /sites/default/files/styles/medium/public/images, а не /sites/default/files/styles/medium/public/image.

Пропишите просто images , а не files/images


Ах, Вы про это. Так, то я просто очепятался в первом посте. Конечно же, папки везде images.
Извиняюсь за очепятку, исправляю.

Родительскую папку /files указал, чтобы было понятнее. В настойках поля прописана просто папка "images".

Вобщем, проблема не с путями, ибо Drupal автоматически должен раскидывать изображения по папкам. Проблема в том, что в /images оригинальное изображение загружается, а обработанные стилями не создаются. И даже не понятно они вообще обрабатываются или нет. В логах никаких намёков на ошибки. Sad

27 апреля 2018 в 19:20

loup54 wrote:

У вас написано, что каталог такой files/images, уберите files и слэшь


Извините, постом выше я уже написал
Kaylang wrote:

Родительскую папку /files указал, чтобы было понятнее. В настойках поля прописана просто папка "images".

fairrandir wrote:

php-gd установлен в системе?


Да.

gd
GD Support enabled
GD headers Version 2.2.5
GD library Version 2.2.5
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.6.1
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version 8
PNG Support enabled
libPNG Version 1.2.54
WBMP Support enabled
XPM Support enabled
libXpm Version 30411
XBM Support enabled
WebP Support enabled

27 апреля 2018 в 20:01

Phantom63rus wrote:

А что в логах сервера? Да и в логах друпала кстати тоже должна быть ругань на невозможность записи.


В том-то и дело, что в error.log ничего не добавляется, а в лог Друпала добавляется только запись о добавлении материала (тип записи "content") и всё.

27 апреля 2018 в 20:30

Если скрипт пытается записать что-то и не может, то должен быть отлуп permission denied. Может оно не пытается даже? Ну не знаю, стили отключены или ещё что-то в этом духе.

27 апреля 2018 в 21:27

Phantom63rus wrote:

Если скрипт пытается записать что-то и не может, то должен быть отлуп permission denied. Может оно не пытается даже? Ну не знаю, стили отключены или ещё что-то в этом духе.


Вот и я недоумеваю. Стили включены.

ЗЫ. Точно такой же сайт на хостинге работает нормально, а на локале такой затык. Sad

image

27 апреля 2018 в 21:53

Стоп, мне вот тут вдруг подумалось: а там ведь генерация картинок идёт только в момент обращения к соответствующему размеру, а не при заливке.

27 апреля 2018 в 22:02

Phantom63rus wrote:

Стоп, мне вот тут вдруг подумалось: а там ведь генерация картинок идёт только в момент обращения к соответствующему размеру, а не при заливке.


Например, на хосте сразу генерируется. Там же после отправки, сразу открывается материал на просмотр.

Orion76 wrote:

Загляните в "Отчет о состоянии" (Меню "Отчеты")

Может там что-то прояснит ситуацию..

Ничего, что помогло бы решить проблему, там не наблюдаю. Хотя, интересный момент есть. Отчёт дает предупреждение, что файлы конфигурации не защищены от записи, хотя на них права - 444.

отчёт

27 апреля 2018 в 22:19

На мой взгляд там что то с конфигами линукса. У меня на локалке, правда не друпал, тоже картинки не отображались, проблема была в путях,т.е. он подставлял в путь localhost, стоял сайт как обячно в каталоге www, решилось просто перенесением в домашнюю директорию и настройкой с отсутствием localhost в пути

27 апреля 2018 в 22:35

Какие у вас выставлены права на каталог tmp? Должно быть 755, я так понимаю, что картинки он из кеша подгружать должен

27 апреля 2018 в 22:54

В конфиге апача поднять уровень логгирования. Чудес не бывает, если файл не создан, то это ошибка, а ошибка должна быть в каком-то логе.

27 апреля 2018 в 23:00

loup54 wrote:

На мой взгляд там что то с конфигами линукса. У меня на локалке, правда не друпал, тоже картинки не отображались, проблема была в путях,т.е. он подставлял в путь localhost, стоял сайт как обячно в каталоге www, решилось просто перенесением в домашнюю директорию и настройкой с отсутствием localhost в пути


Настроен вируальный хост.

loup54 wrote:

Какие у вас выставлены права на каталог tmp? Должно быть 755, я так понимаю, что картинки он из кеша подгружать должен


/tmp 777

Phantom63rus wrote:

В конфиге апача поднять уровень логгирования. Чудес не бывает, если файл не создан, то это ошибка, а ошибка должна быть в каком-то логе.


LogLevel debug
Весь лог тащить не стал.

[Fri Apr 27 22:22:10.963437 2018] [authz_core:debug] [pid 12365] mod_authz_core.c(809): [client 127.0.0.1:47082] AH01626: authorization result of <RequireAny>: granted, referer: http://rusalps.it/node/add/preview_number_journal
[Fri Apr 27 22:22:10.963453 2018] [core:info] [pid 12365] [client 127.0.0.1:47082] AH00128: File does not exist: /var/www/rusalps/web/sites/default/files/styles/thumbnail/public/images/RusDomAlps_2.jpg, referer: http://rusalps.it/node/add/preview_number_journal
[Fri Apr 27 22:22:29.376206 2018] [authz_core:debug] [pid 12367] mod_authz_core.c(809): [client 127.0.0.1:47086] AH01626: authorization result of Require all granted: granted, referer: http://rusalps.it/node/add/preview_number_journal
[Fri Apr 27 22:22:29.376288 2018] [authz_core:debug] [pid 12367] mod_authz_core.c(809): [client 127.0.0.1:47086] AH01626: authorization result of <RequireAny>: granted, referer: http://rusalps.it/node/add/preview_number_journal
[Fri Apr 27 22:22:29.376492 2018] [authz_core:debug] [pid 12367] mod_authz_core.c(809): [client 127.0.0.1:47086] AH01626: authorization result of Require all granted: granted, referer: http://rusalps.it/node/add/preview_number_journal
[Fri Apr 27 22:22:29.376519 2018] [authz_core:debug] [pid 12367] mod_authz_core.c(809): [client 127.0.0.1:47086] AH01626: authorization result of <RequireAny>: granted, referer: http://rusalps.it/node/add/preview_number_journal
[Fri Apr 27 22:22:29.531911 2018] [authz_core:debug] [pid 12367] mod_authz_core.c(809): [client 127.0.0.1:47086] AH01626: authorization result of Require all granted: granted, referer: http://rusalps.it/node/add/preview_number_journal
[Fri Apr 27 22:22:29.531954 2018] [authz_core:debug] [pid 12367] mod_authz_core.c(809): [client 127.0.0.1:47086] AH01626: authorization result of <RequireAny>: granted, referer: http://rusalps.it/node/add/preview_number_journal
[Fri Apr 27 22:22:29.532127 2018] [authz_core:debug] [pid 12367] mod_authz_core.c(809): [client 127.0.0.1:47086] AH01626: authorization result of Require all granted: granted, referer: http://rusalps.it/node/add/preview_number_journal
[Fri Apr 27 22:22:29.532151 2018] [authz_core:debug] [pid 12367] mod_authz_core.c(809): [client 127.0.0.1:47086] AH01626: authorization result of <RequireAny>: granted, referer: http://rusalps.it/node/add/preview_number_journal
[Fri Apr 27 22:22:29.768417 2018] [authz_core:debug] [pid 12368] mod_authz_core.c(809): [client 127.0.0.1:47088] AH01626: authorization result of Require all granted: granted, referer: http://rusalps.it/node/18
[Fri Apr 27 22:22:29.768448 2018] [authz_core:debug] [pid 12368] mod_authz_core.c(809): [client 127.0.0.1:47088] AH01626: authorization result of <RequireAny>: granted, referer: http://rusalps.it/node/18
[Fri Apr 27 22:22:29.768479 2018] [core:info] [pid 12368] [client 127.0.0.1:47088] AH00128: File does not exist: /var/www/rusalps/web/sites/default/files/styles/medium/public/images/RusDomAlps_2.jpg, referer: http://rusalps.it/node/18
[Fri Apr 27 22:22:29.772293 2018] [deflate:debug] [pid 12367] mod_deflate.c(853): [client 127.0.0.1:47086] AH01384: Zlib: Compressed 139103 to 18789 : URL /index.php, referer: http://rusalps.it/node/add/preview_number_journal
[Fri Apr 27 22:22:29.873477 2018] [authz_core:debug] [pid 12367] mod_authz_core.c(809): [client 127.0.0.1:47086] AH01626: authorization result of Require all granted: granted, referer: http://rusalps.it/node/18
27 апреля 2018 в 23:38

loup54 wrote:

хотя нет, я ошибаюсь, на локалке даже каталога такого нет


На локалке используется системный /tmp.

27 апреля 2018 в 23:39

loup54 wrote:

Попробуйте так:

Создайте .htaccess в папке images, вот с этим содержанием:
<Files *>

  SetHandler none
</Files>


Зачем в images? Туда оригинал закидывается.

Или во всех подпапках images в папке styles? То бишь для каждого стиля делать?

27 апреля 2018 в 23:41

images, которая в стилях, если ее нет создайте вручную с правами 775, вы не одиноки эта проблема много раз уже обсуждалась на зарубежных форумах ответа пока не нашел в чем проблема

27 апреля 2018 в 23:46

loup54 wrote:

images, которая в стилях, если ее нет создайте вручную с правами 775, вы не одиноки эта проблема много раз уже обсуждалась на зарубежных форумах ответа пока не нашел в чем проблема


В стилях папки создал вручную ещё утром. Права 775. Не помогло.
У меня ощущение, что не поступает команда на обработку изображения согласно стилей. Но почему так не могу въехать.

27 апреля 2018 в 23:55

Phantom63rus wrote:

Мож на другом хостинге развернуть?


Проблема не на хостинге, проблема на локальном. На хостинге работает как должно.

После некоторых дополнительных экспериментов временно решил вопрос.
В настройках отображения формы заменил тип поля с Image на Image Insert. Теперь изображение обрабатывается стилями и доступно во всех стилях.

Но хотелось бы разобраться почему не срабатывает с Image. На хосте, да и на другом развёрнутом сайте на другом локале работает с Image.

28 апреля 2018 в 9:18

Столкнулся с такой же проблемой на Drupal 8. Всё сделал как по этой ссылке: https://www.drupal.org/forum/support/post-installation/2015-06-16/image-.... И ещё Установил Devel и очистил кеш с помощью него. После чего, всё заработало - все файлы стилей появились в необохдимых папках на сервере.

16 сентября 2019 в 23:22