因为有些浏览器不支持webp图片格式,需要将webp格式的图片转换为png。为此需要安装dwebp图片转换工具。
最开始采用源码编译安装,源码下载地址点击此处。
可能需要先安装一些依赖库:
yum install libjpeg-dev libpng-dev libtiff-dev libgif-dev
tar zxvf libwebp-1.2.0.tar.gz
cd libwebp-1.2.0
./configure
make
make install
在命令行下可以正确执行
dwebp xxx.webp -o xxx.png
在php cli命令行模式下也可以正确执行:
<?php
$shell = "dwebp xxx.webp -o xxx.png";
$output = array();
$return = '';
exec($shell, $output, $return);
返回的$return为0,表示没有错误,命令正常执行。
但是在php-fpm模式下,始终无法得到转换的png图片,而且$return为127,127表示无法找到命令。改成绝对路径也同样返回127
$shell = "/usr/bin/dwebp xxx.webp -o xxx.png";
而且php.ini中的safe_modes=off, disable_functions中也没有exec调用。 查阅资料提示可能需要yum安装dwebp,但是我的系统版本centos 6.5,国外yum源很多无法访问,最后将CentOS-Base.repo改为如下:
[base]
name=CentOS-6
failovermethod=priority
baseurl=https://vault.centos.org/6.5/os/x86_64/
gpgcheck=0
yum install libwebp-devel
yum install libwebp-tools
然后php-fpm中可以正常执行exec("dwebp ..."),将webp图片转为png格式。