Я пытаюсь настроить и установить расширение 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. Установка по исходному коду в производственных системах не является хорошей идеей, так как удаление, понижение уровня, обновление и т. Д. Не поддерживаются.