{"id":3054,"date":"2017-01-12T20:56:07","date_gmt":"2017-01-12T19:56:07","guid":{"rendered":"http:\/\/olbertz.de\/blog\/?p=3054"},"modified":"2017-01-12T20:56:07","modified_gmt":"2017-01-12T19:56:07","slug":"technische-probleme-bei-der-webentwicklung-imagemagick","status":"publish","type":"post","link":"https:\/\/olbertz.de\/blog\/2017\/01\/12\/technische-probleme-bei-der-webentwicklung-imagemagick\/","title":{"rendered":"Technische Probleme bei der Webentwicklung- Heute: ImageMagick"},"content":{"rendered":"<p>\nF&#252;r ein neues Projekt stand ich vor der Aufgabe, verschiedene SVG und Beschriftungen in einer besonderen Schriftart zu kombinieren und am Ende als PNG\/JPEG zur Verf&#252;gung zu stellen. Soweit, so gut, <a href=\"https:\/\/www.imagemagick.org\/\">ImageMagick<\/a> sollte all dieses k&#246;nnen und mir auch in Form einer PHP-Bibliothek zur Verf&#252;gung stellen.\n<\/p>\n<p>\nDa ich das neue MacBook Pro zum Anlass genommen hatte, alles komplett von Neuem zu installieren, war <a href=\"http:\/\/brew.sh\">Homebrew<\/a> zwar schon l&#228;ngst installiert, ImageMagick aber eben noch nicht. Ein paar wenige Befehle sp&#228;ter meldete <code>brew install php70-imagick<\/code> den Vollzug. Bl&#246;derweise meckerte PHP trotzdem, dass es die Klasse <code>Imagick<\/code> nicht kennen w&#252;rde. Ein Blick in die Ausgabe von <code>phpinfo()<\/code> ergab zwar, dass die INI-Datei der Extension verarbeitet wurde, ansonsten tauchte aber keine Information zu ImageMagick auf.\n<\/p>\n<p>\nNach ein paar hilflosen Neuinstallationen der Pakete, kam ich mal auf die Idee in die Error-Logs des Apache zu schauen. Und siehe da: <code>PHP Warning:  PHP Startup: Unable to load dynamic library '\/usr\/local\/opt\/php70-imagick\/imagick.so' - dlopen(\/usr\/local\/opt\/php70-imagick\/imagick.so, 9): Library not loaded: \/usr\/local\/opt\/imagemagick\/lib\/libMagickWand-6.Q16.3.dylib\\n  Referenced from: \/usr\/local\/opt\/php70-imagick\/imagick.so\\n  Reason: image not found in Unknown on line 0<\/code>\n<\/p>\n<p>\nWie &#252;blichen in solchen F&#228;llen, googlet man nach der Fehlermeldung und landet unweigerlich bei <a href=\"http:\/\/stackoverflow.com\/a\/41126779\">Stackoverflow<\/a>. Die L&#246;sung dort sah harmlos genug aus und nach kurzem Anpassen auf meine Zwecke liess ich <code>brew reinstall php70-imagick --build-from-source<\/code> ausf&#252;hren. Nat&#252;rlich mit positivem Ausgang, so dass ich danach endlich mit der eigentlichen Aufgabe fortfahren konnte.\n<\/p>\n<p>\nAls dann irgendwann eine erste Version fertig war, sollte diese nat&#252;rlich auch auf den Staging-Server. Die Skripte daf&#252;r waren recht schnell eingerichtet, ein erster Testlauf brachte aber kein Bild zum Vorschein. Auch hier in die Ausgabe von <code>phpinfo()<\/code> geschaut, wo aber alles danach aussah, als wenn ImageMagick vollst&#228;ndig installiert war.\n<\/p>\n<p>\nUnter den unterst&#252;tzen Formaten tauchte aber SVG nicht auf! Und das, obwohl die Version auf dem Server nur eine Minor-Release &#228;lter war, als die, die ich lokal verwendete. Hier war dann die L&#246;sung, zus&#228;tzlich noch das Paket <code>imagemagick<\/code> zu installieren, da dabei wohl etwas mehr enthalten ist, als wenn nur <code>php70-imagick<\/code> installiert wurde.\n<\/p>\n<p>\nIch freue mich jetzt schon darauf, wenn dieses eigentlich keine Modul irgendwann auch mal beim Kunden installiert werden muss. Aber immerhin kenne ich jetzt schon ein paar Fallstricke und bin so eigentlich gut vorbereitet.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>F&#252;r ein neues Projekt stand ich vor der Aufgabe, verschiedene SVG und Beschriftungen in einer besonderen Schriftart zu kombinieren und am Ende als PNG\/JPEG zur Verf&#252;gung zu stellen. Soweit, so gut, ImageMagick sollte all dieses k&#246;nnen und mir auch in &hellip; <a href=\"https:\/\/olbertz.de\/blog\/2017\/01\/12\/technische-probleme-bei-der-webentwicklung-imagemagick\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":2690,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[74],"tags":[],"class_list":["post-3054","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technik"],"_links":{"self":[{"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/posts\/3054","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/comments?post=3054"}],"version-history":[{"count":2,"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/posts\/3054\/revisions"}],"predecessor-version":[{"id":3056,"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/posts\/3054\/revisions\/3056"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/media\/2690"}],"wp:attachment":[{"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/media?parent=3054"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/categories?post=3054"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/tags?post=3054"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}