Назад | Перейти на главную страницу

Установка расширения Imagick PHP на CentOS 6.3 64bit?

Я пытаюсь настроить и установить расширение imagick, вот команды, которые я использовал

wget http://pecl.php.net/get/imagick-3.0.1.tgz
tar zxf imagick-3.0.1.tgz
cd imagick-3.0.1
phpize
./configure

Но бывает такая ошибка:

checking for MagickWand.h header file... configure: error: Cannot locate header file MagickWand.h

Я нашел MagickWand.h по этому адресу

/local/include/ImageMagick-6/wand

Вот моя версия ImageMagic

Version: ImageMagick 6.8.3-7 2013-03-06 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC
Features: DPC OpenMP Modules
Delegates: bzlib djvu fontconfig freetype gslib jng jp2 jpeg lcms openexr pango png ps rsvg tiff wmf x xml zlib

Есть ли какой-либо вариант с настройкой, чтобы я мог найти этот файл заголовка?

Я устанавливаю правильную версию, так как мой php - 5.3, а ImageMagick 6.8.3-7 пытается установить imagick-3.0.1!?

заранее спасибо

Вы можете использовать pkg-config для поиска заголовочного файла MagickWand.h Предположим, вы установили ImageMagick в /usr/local/ImageMagick-6.8.4 и imagick-3.0.1

cd imagick-3.0.1
export PKG_CONFIG_PATH=/usr/local/ImageMagick-6.8.4/lib/pkgconfig
phpize
./configure --with-php-config=/usr/local/php5/bin/php-config \
--with-imagick=/usr/local/ImageMagick-6.8.4/
make
make install

Я предлагаю вам отказаться от собственного скомпилированного PHP и переключиться на версию, предоставленную ВМС. В частности, вы должны установить следующие пакеты после настройки репозитория IUS:

php53u php53u-pecl-imagick

Это, вероятно, значительно упростит вам задачу, так как вам больше не придется беспокоиться о компиляции этого модуля.

Вам нужно будет указать imagick, где находятся файлы заголовков.

./configure --with-imagick=/local

Используйте переключатель справки, чтобы просмотреть дополнительные параметры конфигурации.

./configure --help

[править] Подтвердить локальную установку

Сценарий конфигурации будет искать MagickWand-config и / или Wand-config исполняемый файл, чтобы определить, где находятся заголовки включения. MagickWand-config выбирается путем проверки, существует ли исполняемый файл в $PHP_MAGICK/bin/MagickWand-config; где, $ PHP_MAGICK это путь, предоставленный --with-imagick=PATH, или /usr/local или /usr.

Вот быстрый сценарий для проверки того, что ваша локальная установка IM может использоваться расширением PHP Imagick.

#!/bin/bash
IM_CONFIG=`which MagickWand-config`
# Or use different IM location by setting previous line with absolute 
# path to executable config (ie. IM_CONFIG=/local/bin/MagickWand-config)

IM_PREFIX=`$IM_CONFIG --prefix`
if test -r $IM_PREFIX/include/wand/magick-wand.h ; then
  echo "Local IM install has development headers"
else
  echo "Local IM install is missing development headers"
  echo "Try reinstalling source, or 'yum install ImageMagick-devel' package"
fi

У меня такой же вопрос. И вышеуказанные способы не могут решить эту проблему.
Я прочитал файл конфигурации и нашел расположение imagickwand.h неправильно. Я решил это, выполнив следующую команду:

ln -s /usr/local/ImageMagick/include/ImageMagick-6 /usr/local/ImageMagick/include/ImageMagick

Я знаю, что это очень старый вопрос, но я должен внести свой вклад.

Если вы используете php 5.4. просто запустите эти две строки кода:

pear config-set preferred_state beta
pecl install imagick

Используйте yum install php-magickwand после включения репозитория epel. Установка по исходному коду в производственных системах не является хорошей идеей, так как удаление, понижение уровня, обновление и т. Д. Не поддерживаются.