ImageMagick是一个用于图象处理的程序 可以运行在windows下和linux下 他的功能非常强大 能进行大小、格式、水印、标签等各种图象处理 比如在Linux下执行convert --help 即可查看ImageMagick的一部分功能说明
在PHP程序中,也可以调用这个ImageMagick程序 但是,调用的形式是通过php的module来实现的 这个module的名称叫做magickwand 很多程序员改用magickwand而不再使用php内置的gd图象函数库
ImageMagick功能非常强大,并且在Linux的发行版的光盘中都包含了安装的rpm 但是系统上自带的ImageMagick的版本通常很老,无法和magickwand共存 所以只能自行安装一个新的 而编译magicwand也是比较复杂的 下边会详细讲述
环境准备 ------------------------ 编译php的magickwand模块环境上必须本身已经装有php (因为一会要用php里边的phpize程序) 下载最新版的ImageMagick(版本大于6.2) 这是因为Redhat自带的版本是5.x,不能搭配magickwand使用 所以只能自己编译一个6.2.x版本来用了 并且,不光是开发环境需要这个包,在实际运行的服务器上 也要手工编译一个ImageMagick-6.2.x版本才可以。 从ImageMagick的官方站下载源码包(用google的搜索第一项就是官方站) 解压缩后配置安装 ./configure LDFLAGS="-L/usr/lib" CPPFLAGS="-I/usr/include" --prefix=/usr/local/ImageMagick --enable-shared --enable-lzw make make install 则6.2版本的ImageMagick安装完成
下载 ------------------------ 从magickwand的官方站下载源码包(用google的搜索第一项就是官方站) 从php.net下载php源码 将php源码解压缩,把magickwand也解压缩,放到php源码下的ext/目录下 例如/root/php-4.4.2/ext/magickwand
整合Module ------------------------ 为什么要整合module?这是因为php内置的图象处理函数库是gd,而不是magickwand 在php的配置脚本中根本看不到 比如到php的源码根目录下,例如: cd /root/php-4.4.2 执行./configure --help | grep magickwand 可以发现根本搜索不到magickwand的有关信息 所以直接编译是不能获得magickwand模块支持的 所以,需要手工把magickwand的源代码添加到php的source tree 并且重新生成configure脚本,然后再编译
进入目录cd /root/php-4.4.2/ext/magickwand 执行phpize phpize这个命令是包含在php包本身里边的,如果这台机器没装过php,这没法执行这个命令 (这就是为什么要把程序放在已经安装了php的服务器上编译的原因) 然后退回到php的源码根路径 cd /root/php-4.4.2 删除老的configure文件 rm ./configure 生成新的configure文件 ./buildconf --force 这个时候在php源码目录下,一个新的configure脚本诞生了 用这个脚本去配置编译php,才能开启magickwand模块 执行./configure --help | grep magickwand可以看到: --with-magickwand=DIR Include Magickwand support 这说明现在进行php的配置编译,就可以启用这个模块了
配置编译 ------------------------ 现在配置php,使用参数: ./configure --enable-shared --with-magickwand=shared,/usr/local/ImageMagick --enable-module=shared,magickwand 这里使用enable-module方式是为了获取so模块文件,便于给其他服务器加装 然后编译 make 等待几分钟即可完成了
获取模块 ------------------------ 然后就可以去php的源码目录中找刚才编译出来的so文件了 find /root/php-4.4.2 -name 'magickwand.so' 把这个文件copy出来,即可放置到别的服务器上使用了 cp ./module/magickwand.so /root
生产环境上安装 ------------------------ 在实际运行的服务器上,要先按照前边所述的方法 编译一个6.2.x版本的ImageMagick并安装到服务器上 然后把magickwand.so复制到php的模块目录里边 比如对应as4版本的php:/usr/local/php4/lib/php 然后在php.ini加入extenstion=magickwand.so 比如对应as4的版本的php.ini在/usr/local/php4/etc/php.ini 保存退出即可,无须重新启动任何服务。
附加软件下载 ------------------------ 本文中提到的ImageMagick与magickwand以及已经编译好的magickwand.so(for php-4.4.2) 可以从下边的URL下载获得 http://www.swsoft.com.cn/support.php?x=&mod_id=100&root=31&file_id=372
原文地址:http://www.swsoft.com.cn/support.php?x=&mod_id=2&root=74&id=457 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|