2016-05-01 13 views
0

In Entwicklungsumgebung funktioniert aber nicht in Produktionsumgebung.ImageMagick auf Ubuntu 14.04 Kein Dekodierdelegierter

Produktionsumgebung Fehler:

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

Gene tmpname:

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

Methode:

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')); 
    } 
    } 

Delegierten:

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 

Versionen (dev und prod enviroments):

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

Irgendwelche Vorschläge? Danke für Ihre Aufmerksamkeit.

+0

Huh? Sie zeigen nicht, welchen Befehl Sie ausgeführt haben. Außerdem ist Ihr ImageMagick alt und muss aktualisiert werden. Versuchen Sie, Ihren Dateinamen mit 'SVG:' zu versehen, wenn er nicht mit '.svg' endet - vorausgesetzt, es handelt sich um eine SVG-Datei, die Sie verarbeiten wollten. –

+0

Die Methode ist neu Imagick ($ filename). Ich aktualisiere meine Frage. Vielen Dank. – alditis

+0

Woher kommt '$ tmpname'? –

Antwort

0

temporäre Datei

die temporäre Datei mit dem Befehl vim Bei der Überprüfung ich die Fehlermeldung vom Server im XML-Format kommt bekam und deshalb die Bibliothek imagick es als SVG-Datei behandelt.

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> 

Lösung

synchronisieren Zeitbetriebssystem mit der Serverzeit.

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

Danke für die Kommentare.