【问题标题】:Add WebP to ImageMagick supported formats for PHP 7.3 on a WHM dedicated server在 WHM 专用服务器上将 WebP 添加到 ImageMagick 支持的 PHP 7.3 格式
【发布时间】:2019-07-26 15:36:22
【问题描述】:

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

这就是交易的内容。我希望能够在我们服务器上托管的所有网站上提供 WebP 格式的图像。所以我安装了一些插件来做到这一点,但他们发出了这个警告,说 WebP 是缺少的 ImageMagick 格式。好吧,每当我在 ImageMagick 支持的格式下检查 PHPINFO 时,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 命令之后我得到了这个:

好的,它在服务器上,它已安装,但它没有显示在 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 时它没有任何错误或需要先安装其他依赖项。

标签: imagemagick whm webp


【解决方案1】:

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

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

从源安装 wepb:

  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. 重启apachesudo apache2ctl restart

要从 CLI 检查它是否工作:

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

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

【讨论】:

    【解决方案2】:

    这个问题源于 CentOS 为 ImageMagick 提供的软件包没有在编译时支持 WebP。

    这个问题有三种变通方法/解决方案:

    1. 如果您将 ALT-PHP(CloudLinux 提供的 PHP)与 cPanel 一起使用,则它带有自己的 ImageMagick 版本,该版本是在 webp 支持下编译的。当然,使用 ALT-PHP 需要支付额外的 CloudLinux 许可证费用,因此可能并非所有人都可以使用。

    2. 今天收到有关此问题的票后,我花了一些时间研究此问题,看看是否可以找到解决此问题的方法。因此,我发布了以下指南,其中概述了如何使用 Remi Repository 提供的 ImageMagick 包,该包是在 webp 支持下编译的。由于 cPanel 不是在安装 Remi 存储库的情况下开发或测试的,因此我们无法为使用该指南或可能源于其使用的问题提供支持。但是,我们愿意为那些仍然感兴趣的系统管理员提供该指南。本指南还包含一个基本 PHP 脚本的链接,该脚本是我为测试和验证 webp 和其他常见格式的图像支持而编写的。

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

    1. 第三个选项是手动编译 ImageMagick 并重新安装 PECL 扩展,以便与您的自定义 ImageMagick 安装一起使用,如此处其他答案中所述。
    • Austin Lowery,二级技术分析师,cPanel

    【讨论】:

    • cPanel 允许 remi 的 PHP 堆栈会很好,从而避免重建任何东西。另请注意,imagick 扩展有两种变体,一种使用 ImageMagick6,另一种使用 ImageMagick7
    • 你好雷米!谢谢回复!我继续在此处添加您的建议作为功能请求:features.cpanel.net/topic/… 不过,我们的社区团队可能需要一些时间来审核和激活该链接。一旦激活,请随时添加您自己的用例/观点,并与感兴趣的其他人分享!就个人而言,我要感谢您多年来的持续努力。我非常享受 Remi Repo 在我的个人计算机中的好处!
    【解决方案3】:

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

    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
    

    【讨论】:

      【解决方案4】:

      @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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-10-24
        • 1970-01-01
        • 2013-08-12
        • 1970-01-01
        • 2017-03-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多