为什么要安装GD库?道理很简单,linux里面没有GD库。^-^,我知道这是废话,且听我慢慢道来。
经常你们在大多数BBS或者站点注册帐号的时候,会看到一些防止恶意注册的图片吧,然后叫你们注册的时候必须将图片里的验证码输入进去才能正常注册。
当你有没有想到,支持这个功能必须用到什么软件呢?没错,需要GD库。有人又要问了,那windows为什么不用装GD库,答案也很简单,因为windows里已经内置GD库了。而linux没有。
谈到GD,以前的确是支持GIF图片的,但是因为版权问题,所以去掉了,不过有网上的达人做了个补丁,使GD继续支持GIF,不过这里我就不详细的说明了。
www.ixdba.net
好了,我们谈谈GD的结构。
GD库其实是由5个组件组成的。
哪5个呢(已经去掉了GIF了,不然是6个)?
zlib jpeg6 libpng freetype libxml2这5个组件组成。每个组件我会说明其作用的。
zlib其实和上面的gzip有关,就是说,想完全使用deflate的功能,并启用gzip,必须要zlib库的支持。
jpeg6跟验证码生成的jpeg图片有关。
libpng跟验证码生成的pnp图片有关。
libxml2怎么说呢,听过什么叫XML标准和XML文件吧,libxml2就是负责解析它的。
freetype就是验证码生成图片上字体。如果想让验证码图片上支持更多的字体,需要安装freetype
好了,我们讲完了5个组件的作用。
下面才开始是整体,如何安装。
linux下的安装可真的让我非常头疼,是的。的确是这样的。尤其你要睁大眼睛看好编译后面的参数。
请一定按顺序来装,比如,一定要现状zlib,不然装libpng的时候就会出问题。
安装zlib-1.2.3
tar zxvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure #首先很多网上教程都是误导,只要是指定--prefix路径的,基本上到后面安装GD库的都无法正常编译,我也不知道为什么,总之按默认的路径安装吧。
make
make install
安装 jpeg6
建立目录:
mkdir /usr/local/jpeg6/
mkdir /usr/local/jpeg6/bin/
mkdir /usr/local/jpeg6/lib/
mkdir /usr/local/jpeg6/include/
mkdir /usr/local/jpeg6/man/
mkdir /usr/local/jpeg6/man1/
mkdir /usr/local/jpeg6/man/man1/ #记住啊,文件最后个"/"符号千万别忘记了,否则就不是建立目录了,如果你是个健忘症的人,那么请在mkdir命令后面加-p参数。
cd /usr/local/src
tar -zvxf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --prefix=/usr/local/jpeg6/ --enable-shared --enable-static #一定要加后面的参数,不然没办法生成共享库。
make && make install
make install-lib #最后一步别忘了啊...切记。
安装libpng
tar -zvxf libpng-1.2.24.tar.gz #这里我要说一下版本好,早期版本,如1.2.10是根本没有./configure这个文件的。所以要手动建立文件,恐怖啊。将scripts目录下的
makefile.linux拷到安装目录并改名为Makefile(注意大小写)并且用VI修改Makefile安装路径(原本Makefile这个文件是需要用./configure生成的)。
cd libpng-1.2.24
./configure #这是问题之所在,跟zlib一样,不能指定目录,要不然编译就会出问题,奇怪了。还是按默认安装吧。
make && make install
安装 freetype
cd /usr/local/src
tar -zvxf freetype-2.3.5.tar.gz
cd freetype-2.3.5
mkdir /usr/local/freetype/
./configure --prefix=/usr/local/freetype/
make && make install
安装libxml2-2.6.30
tar -zxf libxml2-2.6.30.tar.gz