PHP 警告 - PHP 启动:无法加载动态库 'imagick.so'

PHP Warning - PHP Startup: Unable to load dynamic library 'imagick.so'

有没有人遇到过这个警告?除了 php.ini00-ioncube.ini 之外,我还应该检查任何文件吗?那些看起来井井有条。

$ php -v
PHP Warning:  PHP Startup: Unable to load dynamic library 'imagick.so' (tried: /usr/lib64/php/modules/imagick.so (libMagickWand.so.5: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/imagick.so.so (/usr/lib64/php/modules/imagick.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

PHP 7.3.31 (cli) (built: Sep 21 2021 10:24:03) ( NTS )

Operating System:
Operating System: CentOS Linux 7 (Core)
     CPE OS Name: cpe:/o:centos:centos:7
          Kernel: Linux 3.10.0-1160.42.2.el7.x86_64
    Architecture: x86-64

我使用以下步骤将 PHP 从版本 7.1 升级到 7.3:

php -v
sudo yum install epel-release
yum --enablerepo=remi-php73 install php 
php -v 
systemctl restart httpd

我只看到一个 php.ini 文件加载到 /etc/

检查 imagick 扩展是如何安装的:

rpm -qf /usr/lib64/php/modules/imagick.so

看起来它不是由 RPM 提供的,也不是为您 运行 的 PHP 版本构建的(libMagickWand.so.5 也是旧版本)。

要正确配置/安装,请参阅 Wizard instructions

至少我建议您永久启用 remi-php73 存储库,以确保从中获取所有扩展。

yum-config-manager --enable   remi-php73

然后您可以安装 imagick 扩展程序,或您需要的任何其他扩展程序

yum install php-imagick

注意,在此存储库中,您可以在此扩展的 2 个变体之间进行选择,上面的命令将从中选择一个:

  • php-pecl-imagick-im6 使用 ImageMagick 版本 6 (libMagickCore-6.Q16.so.7, libMagickWand-6.Q16.so.7)
  • php-pecl-imagick-im7 使用 ImageMagick 版本 7 (libMagickCore-7.Q16HDRI.so.10, libMagickWand-7.Q16HDRI.so.10)

API 略有不同。