XAMPP for Linux: установка модуля Imagick
В одном из комментов к циклу постов о XAMPP был поднят вопрос об установке модуля Imagick.
Проблема оказалась не столько сложной, сколько стрёмной, так что даже сейчас, после трех удачных попыток на разных ОСях, я чувствую себя не экспертом, а обезьяной, которая научилась, нажимая определенную комбинацию кнопок, получать банан.
Но свой банан я таки получаю, и поэтому решил поделиться своим опытом с другими, гм, юзерами, находящимися на той же ступени развития, что и я. Не пропадать же ему (опыту) даром.
Вводная
Описываемый метод основан на посте юзера lderdziuk, опубликованном на форуме Apache Friends.
Однако там скорее дана схема, чем подробное описание, а опыт показывает, что в процессе реализации этой, в общем-то простой, схемы возникают разные затруднения. Поэтому я попытался изложить установку модуля как можно подробнее.
Метод был опробован на XAMPP 1.7.7 на операционных системах LinuxMint 16 Cinnamon, LinuxMint 17 Cinnamon RC и Matuntu-Tahr. Однако я решил описать процесс на "чистой", свежеустановленной LinuxMint 17 Cinnamon v2 с минимальным количеством дополнительного ПО "не из коробки".
Подготовка
Шаг первый
Создаем директорию /opt/lampp/include/php.Шаг второй
Идем сюда или сюда и берем архив с php точно той же версии, какая стоит в нашем установленном XAMPP (у меня, на XAMPP 1.7.7, это php 5.3.8).Шаг третий
Распаковываем архив с php в созданную директорию /opt/lampp/include/php (т.е. кладем туда не папку php-5.3.8, а ее содержимое).Здесь первый стрёмный нюанс:
Шаг четвертый
Устанавливаем в систему imagemagick.Я предпочел ставить его из реп (Синаптиком), он потащил за собой еще 4 пакета.
Кое-где советуют ставить его из сырцов, но это как правило юзеры других ОСей. Хотите еще больше адреналина – пробуйте сами.
Удовлетворение зависимостей
Как показал опыт, это ключевой момент всей затеи. Если конфигурирование php или собственно установка модуля Imagick будут прерываться с ошибкой – внимательно читайте вывод в терминале и ищите, "какого им еще надо".libxml2-dev
autoconf
autotools-dev
re2c
bison
build-essential (тянет dpkg-dev, g++, g++-4.8, libc-dev-bin, libc6-dev,libstdc++-4.8-dev)
libmagickwand-dev (Внимание! этот пакет потянет за собой более 60 пакетов общим весом около 62 Мб! Убедитесь, что среди них есть libmagickcore-dev)
Собственно установка
Конфигурируем php
Переходим в директорию /opt/lampp/include/php и командуемУстанавливаем модуль Imagick
Переходим в /opt/lampp/bin и командуемInstalling '/opt/lampp/include/php/ext/imagick/php_imagick_shared.h'
Installing '/opt/lampp/include/php/ext/imagick/php_imagick.h'
Installing '/opt/lampp/include/php/ext/imagick/php_imagick_defs.h'
Installing '/opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/imagick.so'
install ok: channel://pecl.php.net/imagick-3.1.2
configuration option "php_ini" is not set to php.ini location
You should add "extension=imagick.so" to php.ini
Последний штрих
В файл /opt/lampp/etc/php.ini записываем (где-то в начале тысячных строк, например, сразу за строкой extension="ncurses.so" строку
Послесловие. Модуль Xdebug
Теперь, уяснив себе, как получить наш банан, мы можем устанавливать и другие модули (теоретически). Я проверил это, установив модуль Xdebug той же командойFailed loading xdebug.so: xdebug.so: cannot open shared object file: No such file or directory
XAMPP: Starting Apache with SSL (and PHP5)...
XAMPP: Starting MySQL...
XAMPP: Starting ProFTPD...
XAMPP for Linux started.

По-моему, неплохо, а!?
Послесловие №2
Вы, конечно, заметили, что выше описана установка модулей на XAMPP 1.7.7 (поскольку он у меня рабочий). Потихоньку меня стала мучать совесть: а как будет с новыми версиями XAMPP, которые наверняка понадобятся многим юзерам?
Процесс был воспроизведен на актуальной версии XAMPP 1.8.3-4 и прошел без проблем. Более того, выяснилось, что установка developer-файлов избавляет от возни с распаковкой⁄конфигурированием php, остается установить imagemagick, libmagickwand-dev, libmagickcore-dev и всю ту страсть, что они потянут, и затем установить модуль той же самой командой
Решайте сами.