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

***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************
分类: PHP
本文转自散尽浮华博客园博客,原文链接:http://www.cnblogs.com/kevingrace/p/5947695.html,如需转载请自行联系原作者

linux下安装php的imagick扩展模块(附php升级脚本)相关推荐

  1. Linux下安装Redis详细教程 (附安装包)

    2.2 Redis安装 Redis官方网站 Redis中文官方网站 http://redis.io http://redis.cn/ 2.2.1 *安装版本* 6.2.1 for Linux(redi ...

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

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

  3. linux升级openssl需要先卸载吗,linux下安装/升级openssl

    (2810)  (1) 安装环境: 操作系统:CentOs7 OpenSSL Version:openssl-1.0.2j.tar.gz 安装: 目前版本最新的SSL地址为 备注:进入http://w ...

  4. 【Linux】CentOS7下安装Ngnix代理服务器详细过程 附Linux 64位 Ngnix压缩包百度云盘分享

    [Linux]CentOS7下安装Ngnix代理服务器详细过程 附Linux 64位 Ngnix压缩包百度云盘分享 Ngnix基本概况 Nginx (读作"engine X") 由 ...

  5. linux下安装mysql5.7.11全纪录_简单几步在Linux环境下安装MySQL5.7(附踩坑记录)

    在Linux下安装MySQL可以说是每个开发者必备的知识 刚好我的服务器重装了一下 因此重新安装了MySQL 写下本文特此记录 下载MySQL的压缩包: 官网:https://dev.mysql.co ...

  6. 10_10_安卓加linux命令,Scrcpy 1.11版支持Android 10及多点触控手势,附Linux下安装命令...

    Scrcpy 1.11版本增加了对Android 10的支持及多点触控手势,现在就可以在Linux系统下安装Scrcpy的更新版本,该工具可让你在PC上镜像Android手机. 更新说明 Scrcpy ...

  7. linux默认编译多核,[转载]【原创】Linux下安装单机多核并行lammps(附meam包)

    总结:Linux下安装单机并行lammps ○.机器配置: 1.处理器:Intel XEON × 2 2.主板:Intel S5500BC 3.内存:金士顿4G × 6 4.操作系统:Redhat E ...

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

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

  9. linux下安装apache + subversionSVN_Subversion

    linux下安装apache + subversion 转自:http://anxiao322.blog.163.com/blog/static/12334124220097310455860/ 目录 ...

最新文章

  1. 眠眠interview Question
  2. mock模拟的数据能增删改查吗_Mock.js模拟数据,脱离后端独立开发,实现增删改查功能...
  3. 关于一些朋友想做在线教育的回复和分享
  4. Java数组对象的内存布局
  5. java异常什么时候抛出异常,java - 什么时候应该抛出IllegalArgumentException?
  6. 使用adb命令查看Sqlite数据库
  7. c# 读hex_在C#中将string转换为hexstring
  8. 单向可控硅(SCR)双向可控硅(TRIAC)
  9. PyTorch + NumPy这么做会降低模型准确率?
  10. mybatis 动态SQL-foreach标签
  11. 常用Python文件
  12. LeetCode刷题(36)--Text Justification
  13. oracle实现aes解密_Oracle的AES加密与解密用法
  14. pip 安装 tensoflow
  15. oracle多少钱一套_消防水炮多少钱一套?您真的只需要一套吗
  16. Android系统默认Home应用程序(Launcher)的启动过程源代码分析(2)
  17. 有一种尊重,叫迟三秒再关门
  18. 翻译: TensorFlow 2.0 中的符号和命令式 API 是什么?
  19. 设计专业是计算机的吗,计算机平面设计是属于计算机什么专业范畴?
  20. 关于程序员的冷笑话 (转载www.lenxiaohuadaquan.net )

热门文章

  1. jQuery EasyUI DataGrid - 格式化列(formatter )
  2. smc数显压力表设定方法_压力控制器工作原理与设定方法
  3. Xcode代码文件模板
  4. java语法基础(总结)
  5. NodeJS、NPM安装配置步骤(windows版本)
  6. 【前段开发】行内元素和块级元素总结(HTML CSS)
  7. ASP.net实现邮件发送
  8. 多域名虚拟空间及DNS配置
  9. dotnet core Linux下图片验证码解决方案
  10. .netcore多语言解决方案