您的位置:博客首页 >> Web服务器 >> 安装ImageMagick(或GD)

安装ImageMagick(或GD)

日志编号:159 发表时间: 2013-08-11 10:18:44 关注次数:7934
要将服务器安装ImageMagick,先讲讲GD安装。

freetype(freetype-2.5.0.1.tar.gz):http://download.savannah.gnu.org/releases/freetype/
libpng(libpng-1.6.3.tar.gz):http://libmng.com/pub/png/libpng.html
jpeg(jpegsrc.v9.tar.gz):http://www.ijg.org/
GD(libgd-2.1.0.tar.gz):http://libgd.bitbucket.org/

https://pecl.php.net/packages.php?catpid=12&catname=Images

下载下来后,可放于src目录,不过我一般都直接在root目录下操作(比较偷懒呗,不用切换到src目录下)。对照本文时,注意库的版本号。

要先安装libpng,而不能先装freetype,因为后者依赖前者。


libpng-1.6.3.tar.gz,不能指定安装目录,否则安装freetype时比较麻烦:
tar zxvf libpng-1.6.3.tar.gz
cd libpng-1.6.3
./configure
make
make install


freetype默认安装在/usr/local/下,可不指定,也可指定其他目录:
tar zxvf freetype-2.5.0.1.tar.gz
cd freetype-2.5.0.1
./configure --prefix=/usr/local/freetype
make
make install




jpeg(V9版本不用创建目录,网上其他文章都是v6版本的)注意解压后目录是jpeg-9:

tar zxvf jpegsrc.v9.tar.gz
cd jpeg-9
./configure --enable-static --enable-shared --prefix=/usr/local/jpeg
make
make install


GD:注意--with-png指定的路径。另外在编译安装zlib时,不能指定路径(指保持默认安装目录即可),否则在安装freetype还是libpng时会提示找不到zlib,也比较麻烦。gd也不要指定路径,因为php中的--with-gd-dir指定好像不能生效(应该是我不会指定路径)
tar zxvf libgd-2.1.0.tar.gz
cd libgd-2.1.0
./configure
 --with-jpeg=/usr/local/jpeg/\
 --with-png=/usr/local/\
 --with-zlib\
 --with-freetype=/usr/local/freetype/

make
make install


剩下的,就是PHP编译时加入--with-gd参数。

ImageMagick的安装和使用是本篇的重点。ImageMagick的安装还是比较麻烦的,具体如下:


tar zxvf ImageMagick-6.8.6-9.tar.gz
cd ImageMagick-6.8.6-9
#export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig #先略过这句。如果下面的无法yes,就用这句指明环境变量路径。
cp /usr/local/freetype/lib/pkgconfig/freetype2.pc /usr/local/lib/pkgconfig/ #这是我2017年4月CentOS 7编译时使用的pkgconfig路径。忘了下面这句是centos 6的路径,还是当时手误。
#cp /usr/local/freetype/lib/pkgconfig/freetype2.pc /usr/lib/pkgconfig #不加这句会不支持freetype,也就是with-freetype的值为no,如果是yum安装的freetype则不需要这句,当然,也不需要configure时link freetype,可见,yum安装一些库是多么方便啊。咱编译纯粹是蛋疼。
./configure CPPFLAGS="-I/usr/local/jpeg/include -I/usr/local/freetype/include -I/usr/local/freetype/include/freetype2" LDFLAGS="-L/usr/local/freetype/lib -L/usr/local/jpeg/lib" --prefix=/usr/local/ImageMagick
make
make install
cd ../

tar xvf imagick-3.0.1.tgz
cd imagick-3.0.1
ln -s /usr/local/ImageMagick/include/ImageMagick-6 /usr/local/ImageMagick/include/ImageMagick
export PKG_CONFIG_PATH=/usr/local/ImageMagick/lib/pkgconfig
/usr/local/webroot/php/bin/phpize
./configure \
 --with-imagick=/usr/local/ImageMagick\
 --with-php-config=/usr/local/webroot/php/bin/php-config

make
make install
安装了ImageMagick和imagick,注意路径要对应,以及export和ln缺一不可。
完了在php.ini最后加入:extension=imagick.so

一般在安装完gd后再安装ImageMagick和imagick,gd可以让很多现成的验证码工作,而ImageMagick在调整图片性能上则非常强大。
安装好后重启php-fpm(如果是apache则重启apache),可以在phpinfo函数中看到相关imagick信息,也可以直接查看下效果:
以下为代码内容,请直接复制粘贴:
<?php
header('Content-type: image/jpeg');
$image = new Imagick('aa.jpg');
// If 0 is provided as a width or height parameter,
// aspect ratio is maintained
$image->thumbnailImage(400, 0);
echo $image;
?> 


总结:安装时难点是freetype的识别,使用yum安装freetype或者cp /usr/local/freetype/lib/pkgconfig/freetype2.pc /usr/lib/pkgconfig吧(根据./configure --prefix=/usr/local/freetype的路径不同,此处路径也需做相应修改)

只有当imagemagick configure时出现with-freetype-yes=yes时才为成功:
点击新开窗口查看图片
(完)
参考:http://www.imagemagick.org/script/advanced-unix-installation.php
    imagick的用法举列:http://www.flashgou.com/show/162

几个用到的命令:
yum安装freetype省去麻烦:yum install freetype-devel freetype
ImageMagick编译后查看freetype相关的纪录:grep -i freetype config.log 
本站不提供讨论功能。
本站所有非新闻类文章均为原创,且禁止转载。
本站为了获得更多流量赚取广告费,难免会有以次充好的文章,望见谅,勿鄙视。