ImageAPI ImageMagick + CentOS7 + Drupal6LTS

Главные вкладки

Аватар пользователя maxim_al maxim_al 10 сентября 2019 в 9:53

Поставил модуль ImageAPI ImageMagick, в Drupal его подцепил, система сообщает:

Конфигурация сохранена
ImageMagick, команда: /usr/bin/convert -version
ImageMagick, ответ: Version: ImageMagick 6.7.8-9 2019-02-01 Q16 http://www.imagemagick.org Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC Features: OpenMP

т.е. в теории модуль должен работать. Однако фотографии при попытке развернуть в полный экран говорят - файл не найден (ничего не говорит но рисунок выдает такой, перечеркнутый фотоаппарат)
Как-то ещё надо связать модуль с друпалом?

Комментарии

Аватар пользователя Semantics Semantics 10 сентября 2019 в 11:40

Файлы на месте?
Как настроен веб-сервер на отдачу статики?

Модуль и Drupal тут вообще в сторонке просто стоят.

Аватар пользователя maxim_al maxim_al 10 сентября 2019 в 12:02

Что значит файлы на месте? Эти файлы автоматически формируются из исходников. Модуль gd нормально отрабатывает. Но в исходом сайте используется именно imagemagic.
На счёт статики не понял.
То что модуль "в сторонке" понятно, но когда я его настраиваю в друпал он же говорит что модуль есть и настроен. Почему же из галереи он не работает?

Аватар пользователя Semantics Semantics 10 сентября 2019 в 12:05

Мой вопрос сугубо потому что вы даете либо минимум информации, либо много, но не той.
Если вы уверены, что запрос доходит до друпала и не происходит генерация - читайте логи, друпала и php.
Может быть миллион причин, от неверных прав до того, что у вас старая версия библиотеки, а центос это тот ещё сарай со старым хламом, и формат файла не поддерживается

Аватар пользователя maxim_al maxim_al 10 сентября 2019 в 13:44

Конкретнее пожалуйста, где посмотреть. Стандартные логи сайта смотрел. Там просто говорится, что данного файла нет.
Если хотите помочь, скажите где именно что смотреть и как можно протестировать.
Если нет то и не надо ничего писать.

PS На счёт сарая. Это не место где обсуждается операционка.

Аватар пользователя maxim_al maxim_al 11 сентября 2019 в 1:06

Так, что бы не путаться в терминах и определениях. Вот что пишется в логе сайта:

[11/Sep/2019:08:56:39 +1100] "GET /system/files/imagecache/Orig/fuimages/%E2%84%96213.jpg HTTP/1.1" 500 -
[11/Sep/2019:08:56:39 +1100] "GET /system/files/imagecache/Orig/fuimages/%E2%84%96213.jpg HTTP/1.1" 500 -
[11/Sep/2019:08:56:40 +1100] "POST /system/lightbox2/filter-xss HTTP/1.1" 200 2
[11/Sep/2019:08:56:40 +1100] "GET /system/files/imagecache/Orig/fuimages/%E2%84%96177.jpg HTTP/1.1" 500 -
[11/Sep/2019:08:56:40 +1100] "GET /system/files/imagecache/Orig/fuimages/%E2%84%96170.jpg HTTP/1.1" 500 -

а вот что в этот момент отдаёт страничка:

В логах где то была ошибка 404, но сейчас понятно, что это не касалось данной проблемы.

Аватар пользователя maxim_al maxim_al 11 сентября 2019 в 10:06

[root@www etc]# cat php.ini | grep displ
display_errors = On

В какой то момент на экран вышло что то подобное:

ImageMagick, команда: /usr/bin/convert '../www-files/fuimages/199.jpg' -quality '100' '../www-files/imagecache/Orig/fuimages/199.jpg'
ImageMagick, ответ:
ImageMagick, команда: /usr/bin/convert '../www-files/fuimages/199.jpg' -quality '100' '../www-files/imagecache/Orig/fuimages/199.jpg'
ImageMagick, ответ:

При попытке прогонять эту команду в консоле ничего не происходит, ни ошибок, нифига... мне кажется что ImageMagick как-то не так отрабатывает.
Но почему php лог не выдаёт, вообще не понимаю...

[root@www etc]# cat php.ini | grep log
log_errors = On
error_log = /var/log/httpd/php_errors.log

Аватар пользователя maxim_al maxim_al 12 сентября 2019 в 2:28

maxim_al wrote:

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

Вчера делал ошибку, в копипасте лишка прихватывал.
Команда отрабатывает.
Что теперь я предполагаю исходя из полученных данных. В том выводе даётся имя файла "199.jpg", а в папке такого файла нет, но есть "№199.jpg".

Аватар пользователя maxim_al maxim_al 12 сентября 2019 в 4:30

В общем как я понимая проблема в коде который формирует строку для ImageMagick.
Что-то PHP7 не так отрабатывает как PHP5, вероятно.
Теперь найти бы этот код PHP который формирует эту строку, и посмотреть чего в ней не так и как она "подрезает" имя файла...

Кстати подобная "фишка" с символом № и при загрузки фото в галерею. Но это вот уже совсем не критично - файл сменит наименование ещё до загрузки, и соответственно потом галерея работает нормально.

Аватар пользователя Semantics Semantics 12 сентября 2019 в 9:42
1

Я не знаю других способов вытаскивать из вас информацию по делу.
Такое ощущение, что проблему нужно решить мне, а не вам.

Конкретные вопросы были заданы в первых комментариях, вы их упорно игнорируете и ждёте, что придёт некто, кто знает, что же за магическая ошибка у вас возникает

Аватар пользователя maxim_al maxim_al 12 сентября 2019 в 9:45

Давайте начнём с начала - на какие вопросы я не ответил? На счёт статики - так я и написал, что мне ваш вопрос не ясен. -Уточнений не последовало.
Файлы ясен перец на месте - это понятно из моих сообщений.
Какой был ещё вопрос на который я не ответил?

Аватар пользователя Semantics Semantics 12 сентября 2019 в 9:52

Давайте начнём с начала.

До сих пор нет ответов, что у вас за веб-сервер и как он настроен.
То что вы скажете "Стандартно как центосе" никакой информации никому не даст, но да, мы же тут не центось обсуждаем, к делу не относится по вашему мнению.

Логов ошибок так и нет, если вы их настроили и их нет - значит вы их не настроили. Независимо от того, что вы и куда вписывали.

Вместо диагностики вы занимаетесь какими-то странными экспериментами.
Сейчас вы решили, что дело в том, что в имени файла есть "№", а файлы без "№" у вас работают?

Аватар пользователя maxim_al maxim_al 12 сентября 2019 в 10:07

Вебсервер

[root@www imageapi]# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Jul 29 2019 17:18:49

Логов ошибок нет потому как ошибок нет. - В конце концов там появилось 3 строки и все,

[root@www httpd]# cat php_errors.log
[12-Sep-2019 03:01:31 UTC] PHP Warning: Module 'imagick' already loaded in Unknown on line 0
[12-Sep-2019 03:01:32 UTC] PHP Warning: Module 'imagick' already loaded in Unknown on line 0
[12-Sep-2019 03:01:57 UTC] PHP Warning: Module 'imagick' already loaded in Unknown on line 0

это сегодня уже веселился с разными модулями.
То что в дисплей сообщения идут я выдал выше.
Если включаю GD - все галереи работают и фото отдаются и ресайзятся.
Если включаю ImageMagick и попадаю на файл без номера - фото работает. Если загружаю файл (при включенном ImageMagick) фото нормально отрабатывает.

Ещё раз повторю. При обновлении страницы выдаются строки по которым видно что строка для ImageMagick формируется не правильно - вместо файла №199.jpg ему отдаётся имя 199,jpg - которого естественно НЕТ.

ImageMagick, команда: /usr/bin/convert '../www-files/fuimages/199.jpg' -quality '100' '../www-files/imagecache/Orig/fuimages/199.jpg'
ImageMagick, ответ:
ImageMagick, команда: /usr/bin/convert '../www-files/fuimages/199.jpg' -quality '100' '../www-files/imagecache/Orig/fuimages/199.jpg'
ImageMagick, ответ:

на все вопросы дал ответ?

Аватар пользователя maxim_al maxim_al 12 сентября 2019 в 11:49

Т.е. это проблема в самом модуле imagemagick?
Вообще я так понимаю, что есть сам конвертер и есть api модуль, который взаимодействует с конвертером. Но вот в самом ли модуле формируется строка для конвертера, или дополнительным php кодом где-то в друпале - не понимаю.
Перерыл всё что смог предположить, но ничего не нашел.
Попробую изучить ссылку поглубже, в исходники заглянуть, может чего и нарою.

Аватар пользователя Semantics Semantics 12 сентября 2019 в 12:21

Я не знаю в чём ваша проблема.
Но вполне допускаю, что утилита convert требует санитации и/или конверта спецсимволов в именах.
В связи с этим, в модуле может быть аналогичный функционал для этого.
Который далеко не факт, что будет работать правильно, спецсимволы и локали отличные от латиницы в именах файлов в вебе принято вырезать.

Аватар пользователя maxim_al maxim_al 13 сентября 2019 в 0:56

Semantics wrote:
Я не знаю в чём ваша проблема.
вполне допускаю, что утилита convert требует санитации и/или конверта спецсимволов в именах.

Вчера не сообразил сразу что здесь этого не писал - при выполнении команды из консоли

/usr/bin/convert '../www-files/fuimages/№199.jpg' -quality '100' '../www-files/imagecache/Orig/fuimages/№199.jpg'

конвертер нормально отрабатывает, поэтому сам конвертер в порядке. Проблема именно в подготовке самой строки для исполнения.
Попробую порыть в направлении api модуля и ASCII (https://www.drupal.org/project/image/issues/352262) возможно что это где-то рядом

Аватар пользователя maxim_al maxim_al 18 сентября 2019 в 2:58

странно, но при установки того же самого на FreeBSD эта связка (ImageAPI ImageMagick + Drupal6LTS) работает нормально. Чудны дела!