maesk
maesk

Reputation: 233

ext-imagick * -> the requested PHP extension imagick is missing from your system

I have trouble installing devisephp for laravel. I am working on the latest version of homestead with php7. when i do composer update i get the following error.

Problem 1
    - Installation request for devisephp/cms 1.4.* -> satisfiable by devisephp/cms[1.4.0].
    - devisephp/cms 1.4.0 requires ext-imagick * -> the requested PHP extension imagick is missing from your system.

After having this message i installed imagick on my homestead environment added the extension to php.ini in cli and fpm and checked in homestead if imagick is working with a test file. Everything was working perfectly but on running composer update i still get the same error message from above. Does anyone have a clue what the problem can be.

The stange thing is that is kan git clone devisephp its bootstrap version completely working including image handling but when i add another package to laravel i again get the above message.

Upvotes: 15

Views: 44054

Answers (6)

Rossi
Rossi

Reputation: 51

my solution with PHP8.3 and imagemagick

brew reinstall php brew reinstall pkg-config
brew reinstall imagemagick

sudo pecl uninstall imagick (in this case sudo was the solution)

pecl install imagick

#PHP8.3

Upvotes: 3

Player1
Player1

Reputation: 3166

In case you are using Mac, here are the steps:

  1. Install Image Magick dependency.

    brew install pkg-config imagemagick

  2. Compile Imagick PHP extension with pecl

    pecl install imagick

  3. Verify the installation.

    php -m | grep -i magic

    You will see imagick.

Upvotes: 2

marcus
marcus

Reputation: 730

With the config.platform key in composer.js you can fake dependencies like php versions or extensions (you can't use an asterisk for the extension version, though!) https://getcomposer.org/doc/06-config.md#platform

As a bonus, you can polyfill ext-imagick with this library: https://github.com/calcinai/php-imagick. it's not complete and relies on the command line ImageMagick. So far it works for me.

{
    "require": {
        "calcinai/php-imagick": "dev-master"
    },
    "config": {
      "platform":{
        "ext-imagick": "3.4.4"
        }
    }
}

Upvotes: 0

Isha
Isha

Reputation: 431

Please follow these steps

  • sudo apt-get install php-imagick
  • php -m | grep imagick // this should print 'imagick' it means installed correctly
  • sudo service apache2 restart //(if needed)

Upvotes: 17

Tofunmi
Tofunmi

Reputation: 131

Try adding:

"ext-imagick": "*",

to your require block in your composer.json like so:

"license": "MIT",
"require": {
    "ext-imagick": "*",
    ....
}

and run composer update

Upvotes: 2

Roman86
Roman86

Reputation: 2309

if you really can't install or don't want that extension to be validated you may skip it by supplying the

--ignore-platform-reqs

flag to your composer command

Upvotes: 25

Related Questions