我正在尝试从源代码安装 gmagick php 扩展,使用以下命令:
mkdir gmagick
cd gmagick
mkdir build
mkdir local
cd $HOME/gmagick/build
wget ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/1.3/GraphicsMagick-1.3.18.tar.gz
tar zxvf GraphicsMagick-1.3.18.tar.gz
cd GraphicsMagick-1.3.18
./configure --prefix=$HOME/gmagick/local --enable-shared --enable-symbol-prefix
make
make install
export PATH=$HOME/gmagick/local/bin:$PATH
cd $HOME/gmagick/build
wget http://pecl.php.net/get/gmagick-1.1.2RC1.tgz
tar zxvf gmagick-1.1.2RC1.tgz
cd gmagick-1.1.2RC1
phpize
export PKG_CONFIG_PATH=$HOME/gmagick/local/lib/pkgconfig
./configure --prefix=$HOME/gmagick/local --with-gmagick=$HOME/gmagick/local
make
make install
echo "extension=gmagick.so" > /etc/php5/conf.d/gmagick.ini
service php5-fpm restart
下面几行包含测试是否正确安装的命令及其输出。
php -i | grep gmagick
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525+lfs/gmagick.so' - /usr/lib/php5/20100525+lfs/gmagick.so: undefined symbol: MagickBlurImage in Unknown on line 0
/etc/php5/cli/conf.d/gmagick.ini,
PWD => /root/gmagick/build/gmagick-1.1.2RC1
OLDPWD => /root/gmagick/build
_SERVER["PWD"] => /root/gmagick/build/gmagick-1.1.2RC1
_SERVER["OLDPWD"] => /root/gmagick/build
答案1
我自己也遇到了同样的问题。问题出--enable-symbol-prefix
在配置 GraphicsMagick 时的标志上。Gmagick 扩展肯定找不到符号,因为--enable-symbol-prefix
“允许在库符号前加上‘Gm’”(来自文档)。
这是我编写的从源代码安装 GraphicsMagick 的脚本 -https://gist.github.com/bhdouglass/7851749。