起初安装PHP 7.4 时,用的是之前PHP 7.1的 .configure 设置,编译时有几个错误提示,也没多看就忽略了,后来使用时,发现不支持 jpg 的图片处理,由于上传是正常的,就没有多理会,再后来安装了 WordPress,有一些图片处理需求,就想到重新编译 GD 库,而不是重装 PHP,但是网上所说的方法几呼试过了,依然没成功,今天认真查了一下 PHP 的手册,才发现,之前都搞错了,包括网上的方法也忽略了这一点,如下图:

PHP7.4 编译配置的变化
GD库的编辑有一些变化,第一句没有全部翻译,大概的意思是 –with-gd 改变为 –enable-gd(是否启用扩展) 和 –with-external-gd (使用外部 libgd,而不是捆绑的),
–with-freetype-dir 改变为 –with-freetype
–with-jpeg-dir 改变为 –with-jpeg
–with-webp-dir 改变为 –with-webp
–with-xpm-dir 改变为 –with-xpm
由于之前已经安装了 jpeg 扩展,就没有重装了,没有装的小伙伴们可以去问谷哥或度娘。
jpeg库下载:http://www.ijg.org/
png库下载:http://www.libpng.org/pub/png/libpng.html
先到你安装 PHP 时的安装包,重新解压,如果之前和我一样编译 GD 库失败的,可以把之前已经解压的安装包删除,重新解压。
接下来的操作:
phpize // 首先进入PHP安装包的 ext/gd ,执行 phpize 这个是运行时的路径,不要搞错了
./configure --with-php-config=/usr/local/php/bin/php-config --with-gd --enable-gd --with-jpeg=/usr/include --with-webp=/usr/include/webp
make && make install
到这里你还没有成功,依然不能处理 jpg 图片,先等一下重启 php-fpm 还有一些设置需要修改
打开你的 php.ini 添加以下设置
extension = gd.so把 gd.jpeg_ignore_warning 前面的 ; 号去掉,把 1 改为 0
gd.jpeg_ignore_warning = 0
然后执行
systemctl reload php-fpm
查看 phpinfo

成功了,再操作 jpg 图片功能一切正常。
在安装PHP 7.4时,若要使GD库支持JPEG,需要关注配置参数的变更。错误地使用旧的配置会导致JPEG图片处理失效。解决方法包括启用GD扩展,指定freetype、jpeg、webp和xpm的路径,并在php.ini中添加相关设置,重启php-fpm后,JPEG图片处理将恢复正常。
2064

被折叠的 条评论
为什么被折叠?



