我正在尝试配置并安装 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!?
提前致谢
答案1
您可以使用 pkg-config 来定位头文件 MagickWand.h 假设您在 /usr/local/ImageMagick-6.8.4 和 imagick-3.0.1 中安装了 ImageMagick
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
答案2
我建议你放弃自定义编译的 PHP,并切换到 宫内节育器。具体来说,您需要在配置 IUS repo 后安装以下软件包:
php53u php53u-pecl-imagick
这可能会让事情变得容易得多,因为您不必再担心编译这个模块了。
答案3
您需要告诉 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
答案4
我知道这个问题很老了,但我必须做出我的贡献。
如果运行 php 5.4,只需运行这两行代码:
pear config-set preferred_state beta
pecl install imagick