Не удалось загрузить модуль, когда скрипт вызывается webapp, отлично работает при запуске из Cli - PullRequest
0 голосов
/ 01 мая 2019

У меня есть веб-приложение, которое использует MVC (yii2), работающее в Ubuntu / lampp. Когда скрипт пытается запустить метод идентификации. Он ничего не возвращает, но в error_log есть несколько строк, указывающих на отсутствие модуля. Эта ошибка только в формате изображения PNG, в JPEG / JPG работает отлично.

Уже пытался переустановить imagemagick и идентифицировать, но безрезультатно. Также скрипт отлично работает при вызове из командной строки.

Функция модели (getFullPath возвращает правильное значение, здесь проблема не в этом)

public function identify()
{
        $cmd = "identify -verbose " . $this->getFullPath();
        $cmd = str_replace(['(', ')'], ['\\(', '\\)'], $cmd);
        exec($cmd, $o);
        return $o;   
}

Сценарий, который отлично работает (это просто png, скачанный с Google, мои файлы там не сохраняются)

<?php   
$cmd = "identify -verbose /home/timurmengazi/Downloads/O-Academy-rgbrev.png";
exec($cmd, $o);
print_r($o);
?>

Также строки из error_log

identify-im6.q16: unable to load module `/usr/lib/x86_64-linux-gnu/ImageMagick-6.9.7//modules-Q16/coders/png.la': file not found @ error/module.c/OpenModule/1302.
identify-im6.q16: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/504.
identify: unable to load module `/usr/lib/x86_64-linux-gnu/ImageMagick-6.9.7//modules-Q16/coders/png.la': file not found @ error/module.c/OpenModule/1302.
identify: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/504.

Я использую эту команду для получения метаданных изображения, таких как тип сжатия, качество сжатия и другие данные.

...