Single

[20220728更新]宝塔PHP7.4编译安装支持WEBP格式的ImageMagick及设置

之前曾介绍过宝塔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-modules --with-webp --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

sOjZC.png

根据服务器具体情况修改以下几项的值,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)原创内容,转载请注明出处。

s62Gp.png
s6GEn.png

文章有(6)条网友点评

  • 我也是遇到同样的问题,可是照这里编译安装的还是不能使用,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这里发现一两个错误,看了下日志是个没见过的格式,反正我也用不到,直接忽略过去了,图床实际使用没有问题。

发表评论