🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
`gd`库是一个强大的图片处理库。常用的功能裁剪,水印,放大缩小图片都可以使用它来处理。 网上查询资料很多都是直接粘贴复制也没自己验证过。这里还是借鉴别人的办法,主要是其与官方的说明比较一致,这里把其步骤一一验证,依赖的库换成最新的。 *****    gd库主要是用来图像渲染的。gd库依赖以下libjpeg、libpng、freetype2、xpm等安装库。在php中启用gd扩展有两种方式一个是动态编译方式,一个是静态编译方式。动态编译方式不需要重新编译php,静态编译方式必须重新编译php。但是无论是动态编译还是静态编译都要先安装gd的相关依赖库文件,并且在编译gd时加到configure参数中。 1、安装`xpm` `yum install libXpm-devel` 2、安装`zlib` ```    wget http://zlib.net/zlib-1.2.11.tar.gz    tar -xzvf zlib-1.2.11.tar.gz    cd zlib-1.2.11    ./configure --prefix=/usr/local/zlib-1.2.11    make && make install    make clean && make distclean    cd ../ ``` 3、安装`libjpeg` ``` wget http://www.ijg.org/files/jpegsrc.v9c.tar.gz tar -xzvf jpegsrc.v9c.tar.gz cd jpeg-9c ./configure --prefix=/usr/local/jpegsrc.v9c --enable-shared --enable-static make && make install make clean && make distclean cd ../ ``` 4、安装`libpng` ``` wget https://jaist.dl.sourceforge.net/project/libpng/libpng16/1.6.37/libpng-1.6.37.tar.gz tar zxvf libpng-1.6.37.tar.gz cd libpng-1.6.317 ./configure --prefix=/usr/local/libpng-1.6.317 make && make install ``` 5、安装`freetype2`,这个安装过程,参杂了python升级到版本3 ``` wget http://download.savannah.gnu.org/releases/freetype/freetype-2.10.1.tar.gz tar -xzvf freetype-2.10.1.tar.gz cd freetype-2.10.1 ./configure --prefix=/usr/local/freetype-2.10.1 make && make install make clean && make distclean cd ../ ``` 6、gd安装    php安装时使用--with-gd必须要执行以下命令,在直接安装gd库是不需要试用-dir,但是在php安装的时候需要-dir ``` wget https://github.com/libgd/libgd/releases/download/gd-2.2.3/libgd-2.2.3.tar.gz tar -xzvf libgd-2.2.3.tar.gz cd libgd-2.2.3 ./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/jpegsrc.v9c --with-png=/usr/ --with-zlib --with-freetype=/usr/lib64 make && make install make clean && make distclean cd ../ ``` 7、php安装gd库    `静态编译` ``` 参见线上环境-LNMP下的php ```    `动态编译` ``` cd php-5.6.19/ext/gd/ phpize ./configure --with-php-config=/usr/local/php7/bin/php-config --with-jpeg-dir=/usr/local/jpegsrc.v9c --with-png-dir=/usr/local/libpng-1.6.37 --with-freetype-dir=/usr/local/freetype-2.10.1 make && make install // 最后会生成一个gd.so文件在 /usr/local/php7/lib/php/extensions/no-debug-non-zts-20180731/ 发现之前装的redis,swoole等扩展文件都在该路径下 make clean && make distclean cd ../ ``` 结果成功:php的图片处理函数成功,验证码生成成功。