Search code examples
phpamazon-ec2imagickamazon-linux-2

Can't install php-imagick on Amazon Linux 2 for PHP 7.4


When I try to run sudo yum install php-imagick

I'm getting this response:

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

Server is on Amazon Linux 2 and PHP version is 7.4.7


Solution

  • This is the cleanest way I found of doing it (under PHP 7.4 on Amazon Linux AMI 2):

    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"
    

    If you're using php-fpm, don't forget to restart it:

    sudo systemctl restart php-fpm.service