2016-05-01 6 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及びPROD enviroments):

  • ImageMagickの6.7.7-10
  • のUbuntu 14.04
  • PHP 5.5.9-1ubuntu4.16

ご注意いただきありがとうございます。

+0

Huh?実行したコマンドは表示されません。また、ImageMagickは古く、アップグレードが必要です。あなたが処理しようとしていたSVGファイルであると仮定して、 '.svg'で終わらない場合はファイル名の先頭に' SVG: 'を付けてください。 –

+0

このメソッドは新しいImagick($ filename)です。私は私の質問を更新する。ありがとう。 – alditis

+0

'$ tmpname'はどこに入りますか? –

答えて

0

私はXML形式でサーバーからのエラーメッセージが表示されましたし、ライブラリimagickはSVGファイルとして扱わ理由は、コマンドのvimで一時ファイルをレビューに一時ファイル

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 

コメントありがとうございます。