【问题标题】:Can't install php-imagick on Amazon Linux 2 for PHP 7.4无法在 Amazon Linux 2 for PHP 7.4 上安装 php-imagick
【发布时间】:2020-12-17 01:16:29
【问题描述】:

当我尝试运行sudo yum install php-imagick

我收到了这样的回复:

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                                                                                                                                                                                                                                      | 3.7 kB  00:00:00     
299 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package php-pecl-imagick.x86_64 0:3.4.4-10.el7.remi.7.4 will be installed
--> Processing Dependency: libMagickCore-6.Q16.so.6()(64bit) for package: php-pecl-imagick-3.4.4-10.el7.remi.7.4.x86_64
--> Processing Dependency: libMagickWand-6.Q16.so.6()(64bit) for package: php-pecl-imagick-3.4.4-10.el7.remi.7.4.x86_64
--> Finished Dependency Resolution
Error: Package: php-pecl-imagick-3.4.4-10.el7.remi.7.4.x86_64 (remi-php74)
           Requires: libMagickCore-6.Q16.so.6()(64bit)
Error: Package: php-pecl-imagick-3.4.4-10.el7.remi.7.4.x86_64 (remi-php74)
           Requires: libMagickWand-6.Q16.so.6()(64bit)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

服务器在 Amazon Linux 2 上,PHP 版本是 7.4.7

【问题讨论】:

  • 您找到解决方法了吗?我花了几个小时试图弄清楚。
  • @AwkDenver,还没有。运气好吗?

标签: php amazon-ec2 imagick amazon-linux-2


【解决方案1】:

这是我发现的最简洁的方法(在 Amazon Linux AMI 2 上的 PHP 7.4 下):

sudo yum -y install php-pear php-devel gcc ImageMagick ImageMagick-devel
sudo bash -c "yes '' | pecl install -f imagick"
sudo bash -c "echo 'extension=imagick.so' > /etc/php.d/imagick.ini"

如果你正在使用php-fpm,别忘了重启它:

sudo systemctl restart php-fpm.service

【讨论】:

  • 我在 Amazon Linux AMI 2 和 PHP 7.4 上尝试了这种方法,它适用于我的 WordPress。谢谢!
【解决方案2】:

我终于让它工作了。这是我使用的命令。首先设置 Amazon linux 使用 php7.4

sudo yum install -y amazon-linux-extras
sudo amazon-linux-extras disable php7.2
sudo amazon-linux-extras disable lamp-mariadb10.2-php7.2
sudo amazon-linux-extras enable php7.4

现在安装 PHP 和一些额外的库

sudo yum clean metadata
# The following line may not be needed, but it was part of my script
sudo yum -y install php-cli php-pdo php-fpm php-json php-mysqlnd php-xml php-mbstring php-soap php-gd
sudo yum -y install php-pear php-devel gcc 
sudo yum -y install ImageMagick ImageMagick-devel ImageMagick-perl
sudo pecl install imagick
sudo chmod 755 /usr/lib64/php/modules/imagick.so

将 extension=imagick.so 添加到文件的动态扩展部分。

sudo vi /etc/php.ini

【讨论】:

  • 您还可以使用echo "extension=imagick.so" | sudo tee /etc/php.d/20-imagick.ini 自动添加扩展名,因为 php.d 中的文件是自动加载的。另外不要忘记重新启动 php-fpm(如果您使用的是 fastcgi)和 httpd/nginx!
【解决方案3】:

我的存储库最初是为 RHEL 和 CentOS 设计的。

7.8 版本中,ImageMagick 被重新定位为 6.9.10,而 php-pecl-imagick 至少需要这个新版本。

看来亚马逊还是落后了。

您可以启用“remi”存储库,它提供最新版本(目前为 6.9.11-28)

# yum --enablerepo=remi,remi-php74 install php-pecl-imagick

为了记忆,这被跟踪为#144

【讨论】:

  • 试过但得到了这个错误:错误:包:ImageMagick-libs-6.9.11.33-1.el7.remi.x86_64(remi)需要:libraw_r.so.19()(64位)您可以尝试使用 --skip-broken 来解决问题您可以尝试运行: rpm -Va --nofiles --nodigest
猜你喜欢
  • 1970-01-01
  • 2016-09-28
  • 1970-01-01
  • 1970-01-01
  • 2015-01-27
  • 2019-09-02
  • 1970-01-01
  • 2023-01-09
  • 2022-01-14
相关资源
最近更新 更多