У меня очень странная проблема, которую я пока не могу объяснить. Я использую библиотеку Imagick для редактирования загруженных изображений и получаю следующий код:
echo shell_exec( 'which jpegoptim' );
$image = new Imagick( '/path/to/the/image.jpg' );
echo shell_exec( 'which jpegoptim' );
Проблема в том, что я получаю следующий вывод:
/usr/bin/jpegoptim
Warning: shell_exec(): Unable to execute 'which jpegoptim' in ... line 129
Это означает, что shell_exec
работает должным образом, прежде чем я создаю объект изображения и не работает после него. Что я делаю неправильно?
Изображение, которое я использую, может быть найдено Вот.
Обновление № 1: все работает отлично, если я использую GD вместо Imagick, но я хочу решить эту странную проблему с Imagick.
Обновление № 2: Более того, такое странное поведение появляется только для определенных изображений, некоторые JPEG-изображения обрабатываются нормально, некоторые — нет.
Обновление № 3: С правами доступа к файлам проблем нет, GD прекрасно обрабатывает один и тот же файл, а shell_exec прекрасно работает после него.
Обновление № 4: Вар дамп из $image
переменная:
class Imagick#395 (0) {
}
Речь идет о shell_exec, который не работает после того, как конструктор Imagick с определенным изображением был передан в него.
Задача ещё не решена.
Других решений пока нет …