php的imagick模块扩展

imagick模块介绍

      ImageMagick是一个用于查看、编辑位图文件以及进行图像格式转换的开放源代码软件套装。它可以读取、编辑超过100种图象格式,可用来替换GD库。

安装

在加载模块前要装好php 与nginx,参考https://www.cnblogs.com/huandada/p/10114722.html

编译安装ImageMagick

wget https://www.imagemagick.org/download/ImageMagick.tar.gz
tar -xvf ImageMagick.tar.gz
cd ImageMagick-7.0.8-20/
./configure -prefix=/usr/local/imagemagick
sudo make
sudo make install

php端imagick模块扩展

wget http://pecl.php.net/get/imagick-3.4.3.tgz 
tar -xvf imagick-3.1.2.tgz
cd imagick-3.1.2
/usr/local/php/bin/phpize
./configure  --with-php-config=/usr/local/php/bin/php-config --with-imagick=/usr/local/imagemagick
sudo make

make install后可以得到该模块扩展路径,之后这个路径会添加到php.ini

sudo make install

sudo vim /usr/local/php/etc/php.ini  添加以下行
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/imagick.so

重启php-fpm服务

sudo killall php-fpm
cd /usr/local/php/sbin/
./php-fpm 

phpinfo()页面查看模块加载情况

cat /usr/local/nginx/html/info.php 
<?php
    phpinfo()
?>

访问页面 http://ip:80/info.php

配置完成

错点梳理

在最初 imagick-3.1.2.tgz 编译时,:./configure --with-php-config=/usr/local/php/bin/php-config --with-imagick=/usr/local/imagemagick
报错: configure: error: Cannot locate header file magick-wand.h
排错思路:版本问题,ImageMagick-7.0.8-20版本的目录结构发生了变化,而imagick-3.1.2.tgz的包中还是低版本的结构
查看imagick-3.1.2.tgz解压包54行

vim imagick-3.1.2/config.m4  
AC_MSG_RESULT(found in $WAND_DIR/include/ImageMagick-6/wand/magick-wand.h)

查看安装的ImageMagick目录为
/usr/local/imagemagick/include/ImageMagick-7/......

解决方法使用高版本的magick包:imagick-3.4.3.tgz

注:本文的是在 nginx的Memcached模块加载 的基础上进行操作,如有疑问还可参考此篇,模块不同,安装方法是一样的
https://www.cnblogs.com/huandada/p/10184241.html

原文地址:https://www.cnblogs.com/huandada/p/10187052.html