源码编译安装PHP运行环境的好处就是可以按需添加拓展,相对灵活。由于项目用到imagick这个拓展,所以稍微了解了一下,并作了笔记。本文主要记录CentOS 6.5下编译imagick拓展。
预热篇:扩展知识
关于ImageMagick
ImageMagick (TM) 是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。官方网站 http://www.imagemagick.org/,ImageMagick比GD的性能要高很多,如果是在处理大量的图片时更加能体现 ImageMagick的性能。 ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布。它遵守GPL许可协议。它可以运行于大多数的操作系统。ImageMagick的大多数功能的使用都来源于命令行工具。可以用来读、写和处理超过185种基本格式的图片文件,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式。利用ImageMagick,可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存。
关于imagick
imagick,可以供PHP调用ImageMagick功能的PHP扩展。使用这个扩展可以使PHP具备和ImageMagick相同的功能。用ImageMagick提供的API来进行图片的创建与修改,这些操作已经封装到扩展imagick中了,最终调用的是ImageMagick提供的API.
实践篇:安装编译ImageMagick、imagick扩展
配置环境说明:
php安装目录:/usr/local/php5/
php拓展目录:/usr/local/php5/lib/php/extensions/no-debug-zts-20100525/
php.ini配置文件路径:/usr/local/php5/lib/php.ini
1、安装编译工具
一般说来,以下这些依赖包在安装Apache、PHP环境时已经安装,可以跳过。
1 |
#yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel perl |
2、安装ImageMagick
可以在官网http://www.imagemagick.org/download/找到最新的源码包。
1 2 3 4 5 6 7 |
#cd /usr/local/src #wget http://www.imagemagick.org/download/ImageMagick-6.8.9-7.tar.bz2 #tar -jxvf ImageMagick-6.8.9-7.tar.bz2 #cd ImageMagick-6.8.9-7 #./configure --prefix=/usr/local/imagemagick #make && make install #export PKG_CONFIG_PATH=/usr/local/imagemagick/lib/pkgconfig/#设置环境变量 |
3、安装imagick
可以在http://pecl.php.net/package/imagick找到合适的源码包。
1 2 3 4 5 6 7 |
#cd /usr/local/src #wget http://pecl.php.net/get/imagick-3.1.1.tgz #下载imagick #tar -zxvf imagick-3.1.1.tgz #cd imagick-3.1.1 #/usr/local/php5/bin/phpize #phpize生成configure配置文件 #./configure --with-imagick=/usr/local/imagemagick --with-php-config=/usr/local/php5/bin/php-config #make && make install |
安装完成之后,会提示以下信息:
Installing shared extensions: /usr/local/php5/lib/php/extensions/no-debug-zts-20100525/
Installing header files: /usr/local/php5/include/php/
4、修改php配置支持imagick
#编辑配置文件,添加以下内容
1 2 3 4 |
#vim /usr/local/php5/etc/php.ini extension="imagick.so" 或者 #echo 'extension="imagick.so"'>>/usr/local/php5/etc/php.ini |
5、重启生效
重新加载拓展模块。如果使用Apache:
1 |
# service httpd restart |
如果使用Nginx
1 |
# service php-fpm restart |
查看拓展是否生效
1 2 |
# /usr/local/php5/bin/php -m|grep imagick imagick |
或者查看phpinfo();
ImageMagick使用拓展阅读
1.通过命令行处理图形:使用 ImageMagick 进行翻转、缩放大小、旋转以及更多操作
2.通过命令行进一步处理图形:在 Linux 上使用 ImageMagick 的提示与技巧
3.官方文档:Command-Line Options