Wykorzystanie ImageMagic zamiast biblioteki PHP GD w Drupalu 6

Standardowa instalacja Drupala wykorzystuje bibliotekę GraphicsDraw (GD) do działania na plikach graficznych. Można też jednak skorzystać z innej biblioteki - ImageMagic.

ImageMagic jest godny polecenia w sytuacji kiedy brakuje pamięci dla procesów PHP na hostingu. Działa on bowiem jako osobny program i limity PHP go nie dotyczą. Ma też większe możliwości niż GD i oferuje lepszą jakość (chociaż tu opinie są różne ;-).

Nie wszędzie jednak jest dostępny, stąd potrzeba ręcznej instalacji, która najczęściej polega na wywołaniu polecenia yum lub apt-get:


apt-get install imagemagic
yum install ImageMagick

Oprócz tego potrzebny jest moduł Image, który do poprawnego działania potrzebuje ścieżki do pliku convert. Domyślnie jest to /usr/bin/convert.

Dodatkowym krokiem, potrzebnym aby ImageMagic pojawił się na liście dostępnych bibliotek w menu ImageAPI jest skopiowanie pliku image.imagemagic.inc z katalogu /modules/image do katalogu [drupal_root]/includes. Domyślnie jest tam tylko plik image.gd.inc.

Zdarzyło mi się zapomnieć o tym skopiowanym pliku podczas aktualizacji jądra Drupala i go usunąłem. Pojawił się wtedy błąd:

[warn] mod_fcgid: stderr: PHP Fatal error: Call to undefined function image_gd_check_settings() in /var/www/html/includes/image.inc on line 69

W efekcie niektóre strony administracyjne nie wyświetlały się wogóle ale pewnie też dlatego że skompilowany przez mnie PHP nie miał biblioteki GD...