2016-05-01 8 views
0

В области разработки не работает, но не в производственной среде.ImageMagick on Ubuntu 14.04 Делегат не декодирует

ошибка Производство окружающая среда:

$e->getMessage(): 
"no decode delegate for this image format 
'/tmp/sws5725c638311df5.24370631' @ error/svg.c/ReadSVGImage/2871" 

Сформировать tmpname:

$tmpname = '/tmp/'.uniqid('sws', true); 

Метод:

public function load($filename) 
    { 
    try 
    { 
     $this->filename = $filename; 
     $this->image = new Imagick($filename); 
     return $this; 
    } 
    catch(ImagickException $e) 
    { 
     error_log($e->getMessage(), 3, "/tmp/log.log"); 
     OPException::raise(new OPInvalidImageException('Could not create jpeg with ImageMagick library')); 
    } 
    } 

Делегатов:

convert -list configure | grep DELEGATES 
bzlib djvu fftw fontconfig freetype jbig jpeg jng jp2 lcms2 lqr lzma openexr pango png rsvg tiff x11 xml wmf zlib 

Версия (Dev и прод): окружающей среды

  • ImageMagick 6.7.7-10
  • Ubuntu 14.04
  • РНР 5.5.9-1ubuntu4.16

Любые предложения? Спасибо за внимание.

+0

Да? Вы не показываете, какую команду вы выполняли. Кроме того, ваш ImageMagick является древним и нуждается в обновлении. Попробуйте префикс вашего имени файла с помощью 'SVG:', если он не заканчивается на '.svg' - предполагается, что это файл SVG, который вы пытались обработать. –

+0

Метод новый Imagick ($ filename). Я обновляю свой вопрос. Благодарю. – alditis

+0

Где находится '$ tmpname'? –

ответ

0

Временного файл

При рассмотрении временного файла с помощью команды Vim я получил сообщение об ошибке, идущем от сервера в формате XML и поэтому библиотека Imagick рассматривал его как файл SVG.

vim /tmp/sws5725c638311df5.24370631 
<?xml version="1.0" encoding="UTF-8"?> 
<Error> 
    <Code>RequestTimeTooSkewed</Code> 
    <Message>The difference between the request time and the current time is too large.</Message> 
    <RequestTime>Sun, 01 May 2016 06:43:17 GMT</RequestTime> 
    <ServerTime>2016-05-01T06:28:06Z</ServerTime> 
    <MaxAllowedSkewMilliseconds>900000</MaxAllowedSkewMilliseconds> 
    <RequestId>382A337F3660C5A9</RequestId> 
    <HostId>+2RI3xW5KBd64P13x4yaWly6VdZzn1okvMAYgKvbFYlGnLp87udxpSBCVx7iQNk7zgnkK/ckUXA=</HostId> 
</Error> 

Решение

операционная система синхронизации время с сервером времени.

sudo service ntp stop 
sudo ntpdate ntp.ubuntu.com 
sudo service ntp start 

Спасибо за комментарии.

 Смежные вопросы

  • Нет связанных вопросов^_^