之前曾介绍过宝塔PHP7.3的GD库不支持WEBP,需升级到PHP7.4文章链接。现在Chevereto最新版的最低环境要求已经提高到PHP7.4,MYSQL5.7。而且已经支持ImageMagick,但宝塔PHP7.4默认安装的ImageMagick却不支持WEBP格式,Chevereto对PHP8的兼容又不太好。以下介绍宝塔PHP7.4编译安装ImageMagick及设置的方法。
安装最新ImageMagick库(当前最新版7.1.0)
- 下载源码
源码地址:https://github.com/ImageMagick/
git clone https://github.com/ImageMagick/ImageMagick.git ImageMagick-7.1.0
- 编译安装
cd ImageMagick-7.1.0
./configure --with-modules
make
sudo make install
sudo ldconfig /usr/local/lib
/usr/local/bin/convert logo: logo.gif
make check
check结果如下即无问题
============================================================================
Testsuite summary for ImageMagick 7.1.0-40
============================================================================
# TOTAL: 86
# PASS: 86
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
============================================================================
安装PHP扩展imagick
- 下载安装包
在https://pecl.php.net/package/imagick 下载安装包,本文所用为当前最新版的imagick-3.7.0,从3.4.4后的版本都支持WEBP。
wget https://pecl.php.net/get/imagick-3.7.0.tgz
- 解压安装包
tar -xzvf imagick-3.7.0.tgz
- 编译安装
cd imagick-3.7.0
/www/server/php/74/bin/phpize
./configure --with-php-config=/www/server/php/74/bin/php-config
make && make install
- 配置PHP及ImageMagick
编辑PHP7.4的配置文件,在末尾加上以下内容(no-debug-non-zts-20190902文件夹名称需以你服务器的具体文件夹名为准,请自行修改,勿照抄):
[imagick]
extension = /www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/imagick.so
搜索policy.xml文件,文件位于以下目录
identify -list configure | grep CONFIGURE_PATH
根据服务器具体情况修改以下几项的值,memory,map,area将限制ImageMagick所使用的内存缓存,width,height限制ImageMagick所处理的图片大小。
<policy domain="resource" name="memory" value="1024MiB"/>
<policy domain="resource" name="map" value="2048MiB"/>
<policy domain="resource" name="width" value="16KP"/>
<policy domain="resource" name="height" value="16KP"/>
<policy domain="resource" name="area" value="2048MB"/>
<policy domain="resource" name="disk" value="2GiB"/>
至此结束,本文为Madlax的杂物房(madlax.pw)原创内容,转载请注明出处。
参考:
1.ImageMagick – Advanced Linux Source Installation
2.https://github.com/Imagick/imagick
文章有(8)条网友点评
我也是遇到同样的问题,可是照这里编译安装的还是不能使用,The imagick image library in this provisioning lacks support for the following image format(s):
WEBP
@ moe 已更新,增加安装库ImageMagick-7.1.0,再试试呗。
有没有办法跳过这个验证呢?不支持WEBP那就不传WEBP就是了。
@ ACGN 修改app/settings.php的 'image_formats_available' => ['PNG', 'GIF', 'JPG', 'BMP', 'WEBP'],这里删除WEBP
我买了个 之前安装成功了,现在怎么安装都安装不成功。届时可否麻烦博主帮看下
@ 时光本无罪 最近换新机器搬迁,用的这个方法没问题,服务器分别是ubuntu20.04和22.04。会在make check这里发现一两个错误,看了下日志是个没见过的格式,反正我也用不到,直接忽略过去了,图床实际使用没有问题。
imagick-3.7.0目录下
./configure --with-modules --with-webp
configure: WARNING: unrecognized options: --with-modules, --with-webp
压根就没有这两个配置项吧
@ iknow 嗯,对。
当初抄文档抄错了看着ImageMagick的文档抄过来了。