imagick是一个PHP的扩展,是一套软件系列,用ImageMagick提供的API来进行图片的创建与修改,不过这些操作已经包装到扩展imagick中去了,最终调用的是ImageMagick提供的API
ImageMagick主要用于图片的创建、编辑以及转换等,ImageMagick与GD的性能要高很多,如果是在处理大量的图片时更加能体现ImageMagick的性能。

下面介绍下安装php的imagick扩展模块的方法:

(1)下载软件
下载ImageMagick.tar.gz: http://pan.baidu.com/s/1qYha9GS (提取密码:gy63)
下载imagick-3.1.0RC1.tgz: http://pan.baidu.com/s/1hsHiEUg (提取密码:dqu2)

一、安装php的imagick扩展模块第一种方法:(pcel安装imagick)【推荐第一种方法】

(2)安装ImageMagick

[root@dev software]# tar -xzvf ImageMagick.tar.gz
[root@dev software]# cd ImageMagick-7.0.2-0
[root@dev ImageMagick-7.0.2-0]# ./configure --prefix=/usr/local/imagemagick
[root@dev ImageMagick-7.0.2-0]# make && make install

[root@dev ImageMagick-7.0.2-0]# /Data/app/php5.6.26/bin/pecl install imagick

................
Build process completed successfully
Installing '/Data/app/php5.6.26/lib/php/extensions/no-debug-non-zts-20131226/imagick.so'
Installing '/Data/app/php5.6.26/include/php/ext/imagick/php_imagick_shared.h'
install ok: channel://pecl.php.net/imagick-3.4.3RC1
configuration option "php_ini" is not set to php.ini location
You should add "extension=imagick.so" to php.ini

产生的imagick.so文件拷贝到/Data/app/php5.6.26/lib/php/extensions/no-debug-non-zts-20131226下
在php.ini文件里添加imagick.so
然后重启php加载imagick模块即可。
使用/Data/app/php5.6.26/bin/php -m 命令查看加载的模块

二、安装php的imagick扩展模块第二种方法:(编译安装imagick)
(3)安装Imagick
注:安装该扩展不要求安装ImageMagick
[root@dev software]# tar -xzvf imagick-3.1.0RC1
[root@dev software]# cd imagick-3.1.0RC1
[root@dev imagick-3.1.0RC1]# /Data/app/php5.6.26/bin/phpize         #这里,之前安装的php路径是/Data/app/php5.6.26,使用phpize生成configure编译文件
[root@dev imagick-3.1.0RC1]# ./configure --with-php-config=/Data/app/php5.6.26/bin/php-config --with-imagick=/usr/local/imagemagick
-------------------------------------------------------
报错:
checking for MagickWand.h header file... configure: error: Cannot locate header file MagickWand.h

解决办法:

查看imagick解压目录下的config.m4文件,发现ImageMagick在7.0.2高版本后的目录结构发生了变化所导致编译失败的。
查看config.m4的第55,56行内容:
[root@dev imagick-3.1.0RC1]# vim config.m4
.......
if test -r $WAND_DIR/include/ImageMagick/wand/MagickWand.h; then
AC_MSG_RESULT(found in $WAND_DIR/include/ImageMagick/wand/MagickWand.h)
.......

对比ImageMagick安装目录结构:
[root@dev include]# pwd
/usr/local/imagemagick/include
[root@dev include]# ls
ImageMagick-7
[root@dev include]# ls ImageMagick-7/
Magick++ MagickCore Magick++.h MagickWand

发现ImageMagick安装后目录结构和上面imagick的config.m4文件里的不一样
需要做下软链接:
[root@dev include]# ln -s ImageMagick-7 ImageMagick
[root@dev include]# ls
ImageMagick ImageMagick-7
[root@dev include]# cd ImageMagick
[root@dev ImageMagick]# ls
Magick++ MagickCore Magick++.h MagickWand
[root@dev ImageMagick]# ln -s MagickWand wand
[root@dev ImageMagick]# ls
Magick++ MagickCore Magick++.h MagickWand wand

这样,再次编译imagick就成功了!
[root@dev imagick-3.1.0RC1]# ./configure --with-php-config=/Data/app/php5.6.26/bin/php-config --with-imagick=/usr/local/imagemagick
.........
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no

creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h

-------------------------------------------------------
[root@dev imagick-3.1.0RC1]# make && make install

---------------------------------------------------------------------------
报错:
make: *** [imagick_class.lo] 错误 1

解决:
原因是没有找到pkgconfig路径

[root@dev imagick-3.1.0RC1]# find /usr -name pkgconfig
/usr/lib64/pkgconfig
/usr/share/pkgconfig
/usr/local/lib/pkgconfig
/usr/local/imagemagick/lib/pkgconfig
/usr/local/include/libmemcached/lib/pkgconfig
/usr/local/libmemcached/lib/pkgconfig

[root@dev imagick-3.1.0RC1]# export PKG_CONFIG_PATH=/usr/local/imagemagick/lib/pkgconfig

然后再次make && make install

完整的流程是:
[root@dev imagick-3.1.0RC1]# /Data/app/php5.6.26/bin/phpize
[root@dev imagick-3.1.0RC1]# export PKG_CONFIG_PATH=/usr/local/imagemagick/lib/pkgconfig
[root@dev imagick-3.1.0RC1]# ./configure --with-php-config=/Data/app/php5.6.26/bin/php-config --with-imagick=/usr/local/imagemagick
[root@dev imagick-3.1.0RC1]# make && make install
----------------------------------------------------------------------------

make install执行结果显示:
installing shared extensions: /Data/app/php5.6.26/lib/php/extensions/no-debug-non-zts-20131226/
Installing header files: /Data/app/php5.6.26/include/php/

生成imagick.so到/Data/app/php5.6.26/lib/php/extensions/no-debug-non-zts-20131226/

手动将imagick.so添加到php.ini文件里,
[root@dev etc]# pwd
/Data/app/php5.6.26/etc
[root@dev etc]# vim php.ini
............
extension="/Data/app/php5.6.26/lib/php/extensions/no-debug-non-zts-20131226/imagick.so"

然后重启php和nginx即可!

[root@dev etc]# /Data/app/php5.6.26/bin/php -m
.....
imagick

----------------------------------------------

---------------------------php升级:由php5.5.1升级到php5.6.26-------------------------
由于线上服务器最初部署的php环境版本是5.5.1,后续应开发需求,将其升级到5.6.26版本

下面附上自己的升级脚本:

[root@huanqiu_web1 software]# pwd
/software/software

[root@huanqiu_web1 software]# ls                             #下载升级需要的软件
ImageMagick.tar.gz    install_php.sh   memcached-2.2.0.tgz    php-5.6.26.tar.gz    php-wkhtmltox-master.zip

[root@huanqiu_web1 software]# cat install_php.sh               #升级脚本(下面编译时带的mysql参数,mysql安装后可以不启动,这里编译需要跟上mysql参数)
#!/bin/bash
cd /software/software
tar -xvf php-5.6.26.tar.gz
cd php-5.6.26
./configure --prefix=/Data/app/php5.6.26 --with-curl --enable-mbstring --with-mysqli=/Data/app/mysql5.6.25/bin/mysql_config --with-mysql=/Data/app/mysql5.6.25/ --disable-rpath --enable-inline-optimization --with-pcre-regex --with-config-file-path=/Data/app/php5.6.26/etc/ --with-config-file-scan-dir=/Data/app/php5.6.26/etc/php.d --with-gd --enable-soap --with-pdo-mysql=/Data/app/mysql5.6.25/  --with-freetype-dir --with-png-dir --with-mcrypt --with-zlib --with-jpeg-dir --with-iconv=/usr/local/lib/ --enable-fpm

make && make install

###extension####
cd /software/software
tar -xvf ImageMagick.tar.gz
cd ImageMagick-7.0.2-0
./configure
make
make install
/Data/app/php5.6.26/bin/pecl install imagick

cd /software/software
tar -xvf memcached-2.2.0.tgz
cd memcached-2.2.0
/Data/app/php5.6.26/bin/phpize
./configure --with-php-config=/Data/app/php5.6.26/bin/php-config
make && make install

cd /software/software
unzip php-wkhtmltox-master.zip
cd php-wkhtmltox-master
/Data/app/php5.6.26/bin/phpize
./configure --with-php-config=/Data/app/php5.6.26/bin/php-config
make && make install

cd /software/software/php-5.6.26/ext/sockets
/Data/app/php5.6.26/bin/phpize
./configure --with-php-config=/Data/app/php5.6.26/bin/php-config
make && make install

cd /software/software/php-5.6.26/ext/bcmath
/Data/app/php5.6.26/bin/phpize
./configure --with-php-config=/Data/app/php5.6.26/bin/php-config
make && make install

cd /software/software/php-5.6.26/ext/gettext
/Data/app/php5.6.26/bin/phpize
./configure --with-php-config=/Data/app/php5.6.26/bin/php-config
make && make install

cd /software/software/php-5.6.26/ext/openssl
mv config0.m4 config.m4
/Data/app/php5.6.26/bin/phpize
./configure --with-php-config=/Data/app/php5.6.26/bin/php-config
make && make install

cp /Data/app/php5.5.1/etc/php-fpm.conf /Data/app/php5.6.26/etc/
cp /Data/app/php5.5.1/etc/php.ini /Data/app/php5.6.26/etc/

sed -i 's#/Data/app/php5.5.1/lib/php/extensions/no-debug-non-zts-20121212/#/Data/app/php5.6.26/lib/php/extensions/no-debug-non-zts-20131226/#g' /Data/app/php5.6.26/etc/php.ini

sed  -i '/memcached.so/i extension="/Data/app/php5.6.26/lib/php/extensions/no-debug-non-zts-20131226/imagick.so"' /Data/app/php5.6.26/etc/php.ini

linux下安装php的imagick扩展模块(附php升级脚本)的更多相关文章

  1. Linux下安装pip(遇到了python2.6升级为python2.7道路上的坑,原因已经找到,只差临门一脚了,以后补上)

    1.先说一下什么是pippip 是“A tool for installing and managing Python packages.”,也就是说pip是python的软件安装工具2.下面介绍怎么 ...

  2. Redis进阶实践之八Lua的Cjson在Linux下安装、使用和用C#调用Lua脚本

    一.引言         学习Redis也有一段时间了,感触还是颇多的,但是自己很清楚,路还很长,还要继续.上一篇文章简要的介绍了如何在Linux环境下安装Lua,并介绍了在Linux环境下如何编写L ...

  3. linux下安装php的swoole扩展模块(安装后php加载不出来?)

    应开发同事要求,需要安装php的扩展模块swoole.swoole是一种PHP高级Web开发框架,框架不是为了提升网站的性能,而是为了提升网站的开发效率,以最少的性能损耗,换取最大的开发效率. 假设服 ...

  4. Linux下安装loadrunner步骤及遇到的问题

    Linux下实现压力测试,只能在Linux下安装加压器---load-generator,然后通过本地录制脚本,通过loadrunner controller 的Scenario-->Load ...

  5. linux下 安装 ImageMagick 及其 php imagick扩展(转)

    linux下 安装 ImageMagick 及其 php imagick扩展 PHP版本7.1.3 : ImageMagick版本 ImageMagick-7.0.8-3: PHP扩展imagick版 ...

  6. windows7下安装php的imagick和imagemagick扩展教程

    这篇文章主要介绍了windows7下安装php的imagick和imagemagick扩展教程,同样也适应XP操作系统,Win8下就没测试过了,需要的朋友可以参考下 最近的PHP项目中,需要用到切图和 ...

  7. linux下安装python linux下一些常用的命令

    注意 ubuntukylin-14.04.2-desktop-amd64 自带python2.7.6 这个说的比较详细 http://wenku.baidu.com/link?url=gaeFcQrc ...

  8. Linux下安装Android的adb驱动-解决不能识别的问题

    Linux下安装Android的adb驱动-解决不能识别的问题 20141011更新:      老方法对我当时使用的一款设备一直都没有出现问题,最后遇到小米手机还有Android4.4版本的系统都会 ...

  9. linux 下安装 php kafka 扩展

    我们使用官方推荐 php kafka 扩展 phpkafka,由于该扩展是基于 librdkafka 开发,所以我们首先需要安装 librdkafka 下载地址:http://kafka.apache ...

随机推荐

  1. 如何查询拥有执行某个Tcode权限所有人员

    方法很简单,如下 一:Tcode:S_BCE_68001400二:输入你想查询的Tcode,例如:SE38   打开如下图所示,然后执行即可   三:AUTH(关于权限的控制),打开如下图所示.上图“ ...

  2. .NET破解之太乐地图下载器【非暴破】

    不知不觉,接触破解逆向已经三个月了,从当初的门外汉到现在的小白,这个过程只有经历过才知道其中的苦与乐: 有无知.困惑.痛苦.惊喜.彻悟.欣慰…… 有无助的软件脱壳,茫然的代码分析,有无趣的反复测试, ...

  3. 其他图片和webP之间相互转换

    WebP 是谷歌研发出来的一种图片数据格式,它是一种支持有损压缩和无损压缩的图片文件格式,派生自图像编码格式 VP8.根据 Google 的测试,无损压缩后的 WebP 比 PNG 文件少了 45% ...

  4. Android自动更新安装后显示‘完成’‘打开’按钮

    /** * 安装apk * * @param url */ private void installApk() { File apkfile = new File(apkFilePath); if ( ...

  5. 第一个JSP程序

    本文介绍如何写出第一个JSP程序 1.配置服务器 (1)在eclipse中选择Server视图,(ps:很多童鞋说找不到Server,那是因为eclipse的版本问题,请下载JEE版本的eclipse ...

  6. 单例模式(oc)

    //主函数 main.m #import <Foundation/Foundation.h> #import "Singleton.h" int main(int ar ...

  7. iOS开发笔记15:地图坐标转换那些事、block引用循环/weak–strong dance、UICollectionviewLayout及瀑布流、图层混合

    1.地图坐标转换那些事 (1)投影坐标系与地理坐标系 地理坐标系使用三维球面来定义地球上的位置,单位即经纬度.但经纬度无法精确测量距离戒面积,也难以在平面地图戒计算机屏幕上显示数据.通过投影的方式可以 ...

  8. 利用eclipse抽取 代码片段为方法

    选取要被抽取成方法的代码片段,右键->Refactor--->Extract Method 填写方法名称     抽取后成了这个样子:

  9. 《SQL Server企业级平台管理实践》读书笔记——SQL Server数据库文件分配方式

    1.文件分配方式以及文件空间检查方法 最常用的检查数据文件和表大小的命令就是:sp_spaceused 此命令有三个缺陷:1.无法直观的看出每个数据文件和日志文件的使用情况.2.这个存储过程依赖SQL ...

  10. Docker容器操作

    启动一次容器并执行命令(执行完命令后结束): docker run centos cat /etc/redhat-release 启动容器进入交互模式: docker run -i -t centos ...