piątek, 28 października 2011

ImageMagick vs WAMP vs LAMP vs me

Wczoraj i dziś miałem tę wątpliwą przyjemność walczyć z integracją PHP oraz ImageMagick zarówno na Linuksie jak i pod Windows. O ile pingwin nie stwarza większych problemów, o tyle na okienkach już tak łatwo nie jest. Wszystkiemu winne wydają się być kompilatory użyte do przygotowania binarek poszczególnych elementów całej tej układanki.

Jak wspomniałem, najprościej jest pod Linuksem, więc od niego zacznę. W moim przypadku pomogła sekwencja poleceń znaleziona na tym blogu.

$ yum install ImageMagick ImageMagick-devel
$ pecl install imagick
$ echo "extension=imagick.so" > /etc/php.d/imagick.ini
$ service httpd restart

Kolejno instalujemy ImageMagick z dodatkowymi narzędziami, następnie rozszerzenie z repozytorium PECL i włączamy je w pliku konfiguracyjnym PHP. Ostatnia komenda restartuje oczywiście Apache'a. Potem zostaje już tylko sprawdzić np. w phpinfo(); czy Imagick faktycznie działa. To tyle.

Jeśli chodzi o Windowsa to naszukałem się trochę więcej. A nawet jak już coś się znajdzie to szanse, że i u nas zadziała wynoszą 50%. Loteria. Dlatego też podaję od razu komplet linków do elementów układanki, które ze sobą współgrają:


ImageMagick instalujemy najlepiej do C:\ImageMagick. Podczas instalacji trzeba się upewnić, że zaznaczona jest opcja "Add to system path" - bez tego nie da rady. Oczywiście do ścieżki systemowej można IM dodać również po instalacji, ale to wykracza już poza temat posta.

WampServer instaluje się bez jakiejś specjalnej filozofii. Kiedy instalator zakończy pracę, kopiujemy bibliotekę php_imagick_ts.dll do folderu C:\wamp\bin\php\php5.3.8\ext i zmieniamy jej nazwę na php_imagick.dll. Teraz trzeba dopisać jeszcze rozszerzenie do php.ini. WampServer ma dwa pliki konfiguracyjne dla PHP (nie wiem który ważniejszy, więc dopisałem do obu).

  • C:\wamp\bin\php\php5.3.8\php.ini
  • C:\wamp\bin\apache\Apache2.2.21\bin\php.ini

W obu odszukujemy dość długą listę rozszerzeń kończącą się mniej więcej tak:

;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll

i dopisujemy do niej extension=php_imagick.dll (bez średnika na początku linii). Zapisujemy pliki.

Na koniec pozostaje uruchomić ponownie system. Tak, system. Nie tylko serwer :)

Wszystko to instalowałem pod Windows XP.