Установка ImageMagick на центось.
Для начала, проверьте чтобы эти пакеты были установлены:
#yum install gcc php-devel php-pear
Если всё в порядке, двигаемся далее и ставим самого магика:
#yum install ImageMagick ImageMagick-devel
Тут есть одно но: если у вас система 64бита, то вы можете ставить x86_64 пакеты, минуя i386 и сэкономив тем самым кол-во зависимостей.
Следующим шагом станет компиляция библиотеки iMagick для PHP.
#pecl install imagick
На вопрос: «Please provide the prefix of Imagemagick installation» отвечаем: «all»
Если всё прошло удачно, то в конце лога появится:
Build process completed successfully
Installing ‘/var/tmp/pear-build-root/install-imagick-3.0.1//usr/lib/php/modules/imagick.so’
Installing ‘/var/tmp/pear-build-root/install-imagick-3.0.1//usr/include/php/ext/imagick/php_imagick_defs.h’
Installing ‘/var/tmp/pear-build-root/install-imagick-3.0.1//usr/include/php/ext/imagick/php_imagick.h’
Installing ‘/var/tmp/pear-build-root/install-imagick-3.0.1//usr/include/php/ext/imagick/php_imagick_shared.h’
install ok: channel://pecl.php.net/imagick-3.0.1
You should add «extension=imagick.so» to php.ini
Последняя строка как бы намекает что надо прописать модуль, прописываем:
#echo «extension=imagick.so» > /etc/php.d/imagick.ini
Рестартуем httpd и проверяем загрузился ли модуль:
#service httpd restart
#php -m | grep imagick
Ня! Можно кушать сгущенку и ресайзить каваек :З
По мотивам: http://tuxologia.blogspot.com/2011/01/imagemagick-centos.html
Небольшое дополнение. Если у вас в php.ini отсутствует imagick и возникает ошибка:
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php/modules/imagick.so’ — /usr/lib/php/modules/imagick.so: cannot open shared object file: Permission denied in Unknown on line 0
То возможно SELinux блокирует модуль. Проверить это можно следующим образом:
#ls -Z /usr/lib/php/modules
Если вывод будет:
-rwxr-xr-x root root root:object_r:tmp_t imagick.so
-rwxr-xr-x root root system_u:object_r:textrel_shlib_t dbase.so
-rwxr-xr-x root root system_u:object_r:textrel_shlib_t gd.so
значит проблема в безопасности. Решается она следующим способом:
#restorecon /usr/lib/php/modules/imagick.so
после этого всё должно быть нормально:
-rwxr-xr-x root root
system_u:object_r:textrel_shlib_t
imagick.so
-rwxr-xr-x root root system_u:object_r:textrel_shlib_t dbase.so
-rwxr-xr-x root root system_u:object_r:textrel_shlib_t gd.so
Рестартуем httpd и проверяем phpinfo() ^_^