2013-11-23 3 views
4

Мой PHP скрипт, который использует Imagick дает мне эту ошибку, когда я запускаю его:Проблемы с Imagick и PHP

Fatal error: Class 'Imagick' not found in /var/www/vhosts/example.com/script.php on line 320

Если я бегу php от SSH это дает мне это предупреждение:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/imagick.so' - /usr/lib/php/modules/imagick.so: undefined symbol: php_checkuid_ex in Unknown on line 0

Странно, что Imagick всегда работает ... Я пытался его установить, но он говорит, что все уже установлено.

Либерал находится в правильном месте:

# locate imagick.so 
/usr/lib/php/modules/imagick.so 

Я попытался переключиться на бета-версии Imagick, потому что кажется, что Imagick имеет проблемы с PHP версии 5.4.2, но проблема не решена:

pear config-set preferred_state beta 
pecl upgrade imagick 

Когда я пытаюсь обновить его терпел неудачу на конфигурации:

error: Unable to find MagickWand.h or magick-wand.h header ERROR: `/var/tmp/imagick/configure --with-imagick' failed

Таким образом, я создал символическую ссылку из magick-wand.h в /usr/include/ImageMagick/wand/MagickWand.h но теперь ошибки на марке:

/var/tmp/imagick/imagick_helpers.c:859: error: 'PaletteBilevelMatteType' undeclared (first use in this function) 
/var/tmp/imagick/imagick_helpers.c:859: error: (Each undeclared identifier is reported only once 
/var/tmp/imagick/imagick_helpers.c:859: error: for each function it appears in.) 
make: *** [imagick_helpers.lo] Error 1 
ERROR: `make' failed 

Как я могу сделать?

ответ

8

Хорошо, я решил эту проблему.

Я удалил ImageMagick и ImageMagick-Devel

yum remove ImageMagick 
yum remove ImageMagick-devel 

Затем я установил более позднюю версию от RPM:

cd /root 
wget http://www.imagemagick.org/download/linux/CentOS/i386/ImageMagick-6.8.7-6.i386.rpm 
wget http://www.imagemagick.org/download/linux/CentOS/i386/ImageMagick-devel-6.8.7-6.i386.rpm 
rpm -Uvh ImageMagick-6.8.7-6.i386.rpm 
rpm -Uvh --nodeps ImageMagick-devel-6.8.7-6.i386.rpm 

ноты --nodeps, необходимого, так как это было ищут ImageMagick-libs, которые я не могу найти и, кажется, не нужен

затем я удалил Imagick

pecl uninstall imagick 

И я составил его еще раз, используя PECL

pecl install imagick 

Все работало (с некоторым предупреждением, но он работает правильно после установки).

Это решение работает на CentOS 5/6 x86, ищите библиотеки для вашей арки или дистрибутива, если у вас есть другая ОС.

4

я решить мою проблему с деинсталлировать затем повторно установить расширения «Imagick» с помощью команды PECL

SSH в сервер в качестве корня и введите

pecl uninstall imagick 

тогда ...

pecl install imagick 

Обратите внимание, что это на Centos 6.5 и работает php 5.4.42 и ImageMagick 6.7.2-7

Проведено лечение

+0

Это сработало для меня –

Смежные вопросы