在WHM专用服务器上,为PHP 7.3添加WebP到ImageMagick支持的格式。

5

我正在尝试将WebP添加到PHP 7.3上的ImageMagick支持格式中,该服务器是WHM专用服务器。每当我添加这个问题时,我看到了其他与此问题相关的帖子,但它们没有解决方案,因为我尝试了那些答案中每个人的建议。

这是问题所在。我希望能够在我们服务器上托管的所有网站上以WebP格式提供图像。因此,我安装了一些插件来实现这个目的,但它们会抛出一个警告,指出WebP是一个缺失的ImageMagick格式。好吧,在检查PHPINFO下的ImageMagick支持格式时,WebP确实不见了。

输入图片描述

我也从该插件获取了以下通知: EWWW Image Optimizer需要exec()来执行本地压缩。您的系统管理员已禁用exec()函数,请要求他们启用它。

因此,我进入主PHP INI文件并在disable_functions =下,我们没有分配任何功能。

因此,我首先尝试仅安装libwebp库,如下所示:

$ wget -c https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-0.6.1-linux-x86-32.tar.gz
$ tar -xvf libwebp-0.6.1-linux-x86-32.tar.gz 
$ cd libwebp-0.6.1-linux-x86-32/
$ cd bin/
$ ls

执行ls命令后我得到了以下结果:

enter image description here

好的,它已经在服务器上安装了,但在ImageMagick支持的格式下没有显示出来,所以我尝试从Unix源代码重新安装ImageMagick。

下载完成后,我进行了如下操作:tar xvzf ImageMagick.tar.gz

然后进行ImageMagick的配置和编译。

$ cd ImageMagick-7.0.8
$ ./configure
$ make

安装
sudo make install

配置了动态链接器的运行时绑定:

sudo ldconfig /usr/local/lib

然后我想运行ImageMagick验证套件:

make check

所有的操作都没有报错,但是每当我检查PHPINFO时,仍然没有显示任何更改。我做错了什么?我该如何配置PHP或者我遗漏了什么?

谢谢!


安装libwebp到ImageMagick所在的位置或者让其能够找到它。安装ImageMagick。通过convert -version检查是否已安装。webp应该显示在委托列表中。如果没有,则请确保在安装webp时没有出现任何错误或需要先安装其他依赖项。 - fmw42
4个回答

7

在继续之前,请先删除所有以前安装的webp。

要安装支持webp的Imagick,您应该:

从源代码安装webp:

  1. wget http://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.1.0.tar.gz
  2. tar xvzf libwebp-1.1.0.tar.gz
  3. cd libwebp-1.1.0
  4. ./configure
  5. make && sudo make install

从源代码安装带有webp支持的Imagick:

  1. wget https://imagemagick.org/download/ImageMagick.tar.gz
  2. ./configure --with-webp=yes
  3. sudo make && sudo make install

使用PECL安装Imagick:

  1. sudo pecl install imagick
  2. sudo echo "extension=gmagick.so" > sudo /etc/php/7.3/apache2/conf.d/20-imagick.ini
  3. 重启apache sudo apache2ctl restart

要检查它是否在CLI中工作:

php -r "print_r(Imagick::queryFormats());"

您应该在列表中看到“WEBP”。


2
这个问题源于CentOS提供的ImageMagick软件包没有编译支持WebP格式。有三种解决方法/解决方案:
1. 如果你使用的是带有cPanel的ALT-PHP(由CloudLinux提供的PHP),它自带了一个已经编译支持webp格式的ImageMagick版本。当然,使用ALT-PHP需要额外支付CloudLinux许可证的费用,因此可能并不适用于所有人。
2. 今天收到一张关于这个问题的工单后,我花了一些时间研究了这个问题,看看能否找到一种解决方法。结果,我发布了以下指南,介绍如何使用Remi存储库提供的ImageMagick软件包,该软件包已编译支持WebP格式。由于cPanel未在安装Remi存储库的情况下开发或测试,我们无法为使用指南或由其使用引起的问题提供支持。但是,我们仍然想以礼貌之举提供指南,以便对系统管理员感兴趣。此指南还包括一个我编写的基本PHP脚本的链接,用于测试和验证WebP和其他常见格式的图像支持。
3. 另一种解决方法是手动编译ImageMagick软件包以支持WebP格式。

https://support.cpanel.net/hc/en-us/articles/4403506784919-How-to-enable-the-webp-image-format-for-use-with-ImageMagick-on-cPanel

第三个选项是手动编译ImageMagick并重新安装PECL扩展,以便与您的自定义ImageMagick安装一起使用,正如其他答案中提到的那样。
作者:Austin Lowery,技术分析师II,cPanel

希望 cPanel 允许使用来自 remi 的 PHP 堆栈,从而避免重建任何内容。同时请注意,imagick 扩展有两种变体,一种使用 ImageMagick6,另一种使用 ImageMagick7。 - Remi Collet
你好Remi!感谢您的回复!我已经将您的建议作为功能请求添加到以下链接中:https://features.cpanel.net/topic/22155-allow-the-use-of-the-php-stack-provided-by-the-remi-repository不过,这个链接需要一些时间才能被我们的社区团队审核和激活。一旦激活,请随时添加您自己的用例/观点,并与其他感兴趣的人分享!就个人而言,我要感谢您多年来的持续努力。在我的个人计算中,我非常享受Remi Repo带来的好处! - user16354366

1

在 CentOS 7 上从源代码编译 ImageMagick,并支持 .webp

yum -y remove ImageMagick* && cd /root && rm -f ImageMagick.tar.gz && yum -y install bzip2-devel libtiff-devel giflib-devel ghostscript-devel libwmf-devel jasper-devel libtool-ltdl-devel libXext-devel libXt-devel OpenEXR-devel libwebp-devel rpmdevtool libtool-ltdl-devel ImageMagick-devel freetype-devel ghostscript-devel libwmf-devel jasper-devel lcms-devel bzip2-devel librsvg librsvg2 librsvg2* liblpr-1 liblqr-1-devel libtool-ltdl-devel autotrace-devel freetype +bytecode graphviz gs wmf jbig jpeg2 lcms jpeg libjpeg libjpeg-devel libtiff && cd /tmp && wget http://mirror.checkdomain.de/imagemagick/ImageMagick.tar.gz && tar xvfz ImageMagick.tar.gz && cd ImageMagick* && ./configure --prefix=/usr --with-rsvg=yes --with-wmf=yes --with-png=yes --with-libtiff=yes --with-tiff=yes --with-jpeg=yes --with-jp2=yes --with-freetype=yes && make && make install && ldconfig /usr/local/lib

1

@be3 谢谢你的帮助。由于我无法在 /tmp 文件夹中执行 ./configure,所以我对此进行了小改动,将其移动到 /root 文件夹中执行。

yum -y remove ImageMagick* && cd /root && rm -f ImageMagick.tar.gz && yum -y install bzip2-devel libtiff-devel giflib-devel ghostscript-devel libwmf-devel jasper-devel libtool-ltdl-devel libXext-devel libXt-devel OpenEXR-devel libwebp-devel rpmdevtool libtool-ltdl-devel ImageMagick-devel freetype-devel ghostscript-devel libwmf-devel jasper-devel lcms-devel bzip2-devel librsvg librsvg2 librsvg2* liblpr-1 liblqr-1-devel libtool-ltdl-devel autotrace-devel freetype +bytecode graphviz gs wmf jbig jpeg2 lcms jpeg libjpeg libjpeg-devel libtiff && cd /tmp && wget http://mirror.checkdomain.de/imagemagick/ImageMagick.tar.gz && tar xvfz ImageMagick.tar.gz && cd / && cp -r /tmp/ImageMagick-7.1.0-2 / && cd ImageMagick* && ./configure --prefix=/usr --with-rsvg=yes --with-wmf=yes --with-png=yes --with-libtiff=yes --with-tiff=yes --with-jpeg=yes --with-jp2=yes --with-freetype=yes --with-webp=yes && make && make install && ldconfig /usr/local/lib

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接