在php项目中,使用到图片裁切、缩放等功能时,就需要php启用gd和libjpeg扩展,否则imagecreatefromjpeg 类似函数不可用。可能是因为jpeg的版权问题,yum安装的gd库默认不支持jpeg有关操作,需要手工安装jpeg library(参见php官网:https://www.php.net/manual/en/image.requirements.php)。
php官网关于让gd支持jpeg的叙述
按照php官网指引,打开http://www.ijg.org/,下载最新版本,当前是 jpegsrc.v9d.tar.gz(下载链接:http://www.ijg.org/files/jpegsrc.v9d.tar.gz)。逐条执行以下命令,解压、安装:
tar -zxvf jpegsrc.v9d.tar.gz cd jpeg-9d ./configure --enable-shared 官网提示,必须添加此参数 make sudo make install 此时,将libjpeg安装到了默认目录:/usr/local/lib
接下来,要使库libjpeg.so全局可用,否则,从php源码配置时会报错,查看日志可见提示libjpeg.so.9找不到。我们这样操作:
sudo vi /etc/ld.so.conf 加入一行:/usr/local/lib 保存后执行:sudo ldconfig -v
接下来安装php即可:
cd php-5.6.40 ./configure --prefix=/usr/local/php5_6 --enable-fpm --with-mhash --enable-mbstring --with-curl --disable-rpath --with-pdo-mysql --enable-inline-optimization --with-bz2 --with-zlib --enable-pcntl --without-sqlite3 --without-pdo-sqlite --disable-mbregex --enable-shared --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --enable-zip make -j2 && make install
安装完成后,在phpinfo中能看到JPEG Support enabled libJPEG Version 9 compatible类似文字,说明gd的jpeg功能安装成功(如图)。
gd的jpeg功能安装成功