分析原因:
因为该版本的GD库不支持JPEG格式的处理,打开phpinfo可以直观看到,只有png和gif格式的支持 没有jpeg的支持
解决方案(思路):
安装jpeg支持,重新编译gd库,生成gd.so文件,重新加载gd库扩展
解决步骤:
1、下载jpeg
wget http://www.ijg.org/files/jpegsrc.v8b.tar.gz
2、安装编译
tar -zxvf jpegsrc.v8b.tar.gz
cd jpeg-8b
./configure --prefix=/home/jpeg --enable-shared --enable-static #我这里是安装到/home 具体安装位置您随意
make && make install
3、重新编译gd库
进入到未编译的php源码的 gd 目录,而不是安装后PHP的目录,否则会报 cannot find config.m4 之类的错误
cd /root/php-7.1.0/ext/gd
/usr/local/php7.1.0/bin/phpize #这是我自己的phpize目录,如果您不知道您的目录在哪 您可以用find / -name phpize 查找一下
./configure --with-php-config=/usr/local/php7.1.0/bin/php-config --with-jpeg-dir=/home/jpeg
#前一个目录是原来编译安装php的目录,可以通过#find / -name php-config来查找,后一个目录是前面第一步安装jpegsrc包的目录
make && make install
4、重新加载GD库
以上安装成功之后会生成一个gd.so文件
然后编辑php.ini,添加extension = go.so
5、重启php-fpm 解决
PS:有人机器上述步骤后不能解决的话,那就重新编译PHP,才可解决:进入PHP源码目录先执行make clear 然后在执行./configure make && make install
cd /root/php-7.1.0
make clear
./configure --prefix=/usr/local/php7.1.0 --with-curl --with-freetype-dir --with-jpeg-dir --with-png-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --without-pear --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --disable-phar
make && make install