与JPG、PNG等图片格式相比,在同等质量下,谷歌发布的Webp的体积更小,显然有利于优化网络速度和存储空间,现在各大浏览器基本已全面支持Webp格式,Webp格式图片替代其他图片格式是大势所趋。正常情况下,我们在php中安装Imagemagick扩展即可让主机支持webp格式,但作为最广泛使用的宝塔面板,不知从何时起,不再默认支持webp格式,即便安装了ImageMagick扩展也不行。宝塔官网论坛的工作人员提供了几种方案,但均不能凑效。经过反复尝试,本文可以解决这一问题。
下面以centos安装宝塔面板,php7.4版本为例,其他版本需要修改相应的文件目录。
一、卸载宝塔的ImageMagick扩展
为避免版本冲突,先删除 PHP已经安装的 ImageMagick 扩展:
方法1:在宝塔文件管理器里删除 /www/server/php/74/lib/php/extensions/no-debug-non-zts-20180731/imagick.so 文件
方法2:用命令行:
rm -f /www/server/php/74/lib/php/extensions/no-debug-non-zts-20180731/imagick.so
PHP7.3版本或其他版本的,需要将上面的74更改为73。
二、安装webp库
yum install libwebp
三、编译安装ImageMagick
以下代码一行一行执行:
wget https://netix.dl.sourceforge.net/project/imagemagick/old-sources/6.x/6.8/ImageMagick-6.8.7-10.tar.gz
tar -zxvf ImageMagick-6.8.7-10.tar.gz
cd ImageMagick-6.8.7-10
./configure --with-webp
make && make install
cd ..
注意上面的代码在有些服务器上可能会显示 make && make install,应该是 make && make install。
四、编译安装 PHP 的 ImageMagick 扩展
以下代码一行一行执行:
wget http://pecl.php.net/get/imagick-3.4.3.tgz
tar -zxvf imagick-3.4.3.tgz
cd imagick-3.4.3
/www/server/php/74/bin/phpize
./configure --with-php-config=/www/server/php/74/bin/php-config
make && make install
注意上面的代码在有些服务器上可能会显示 make && make install,应该是 make && make install。
如果是PHP7.3版本,这里的两个74要改为73。
五、重载 PHP 服务
service php-fpm-74 reload
六、安装ImageMagick扩展
到这里为止,实际上ImageMagick并未安装成功,我们打开宝塔面板PHP7.4管理面板,在安装扩展处再次安装ImageMagick扩展。
七、修改PHP配置文件
打开”配置文件“,拉到最下面,将安装程序自动插入PHP.ini文件中的下列代码:
[ImageMagick]
extension = "imagick.so"
更改为下列代码:
[ImageMagick]
extension = /www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/imagick.so
保存后,重载PHP配置,进入到phpinfo,我们可以看到ImageMagick已经支持webp格式了。