{"record":{"id":"56374b178ad9a734","repo":"Intervention/image","slug":"imagick-php-extension-must-be-installed-to-use-thi","errorCode":null,"errorMessage":"Imagick PHP extension must be installed to use this driver","messagePattern":"Imagick PHP extension must be installed to use this driver","errorType":"exception","errorClass":"MissingDependencyException","httpStatus":null,"severity":"critical","filePath":"src/Drivers/Imagick/Driver.php","lineNumber":46,"sourceCode":"     *\n     * @see DriverInterface::id()\n     */\n    public function id(): string\n    {\n        return 'Imagick';\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @see DriverInterface::checkHealth()\n     *\n     * @codeCoverageIgnore\n     */\n    public function checkHealth(): void\n    {\n        if (!extension_loaded('imagick') || !class_exists('Imagick')) {\n            throw new MissingDependencyException(\n                'Imagick PHP extension must be installed to use this driver',\n            );\n        }\n    }\n\n    /**\n     * {@inheritdoc}\n     *\n     * @see DriverInterface::createImage()\n     *\n     * @throws InvalidArgumentException\n     * @throws DriverException\n     */\n    public function createImage(int $width, int $height): ImageInterface\n    {\n        if ($width < 1 || $height < 1) {\n            throw new InvalidArgumentException('Invalid image size. Must be int<1, max>');\n        }","sourceCodeStart":28,"sourceCodeEnd":64,"githubUrl":"https://github.com/Intervention/image/blob/5598b9e39751c34afc5cdee84abef77f92c26f68/src/Drivers/Imagick/Driver.php#L28-L64","documentation":"The Imagick driver's health check found the imagick extension not loaded or the Imagick class absent. It fires as soon as an ImageManager is created with the Imagick driver on a PHP runtime that cannot back it. It is a MissingDependencyException (environment problem), not an image problem.","triggerScenarios":"new ImageManager(['driver' => 'imagick']) or ImageManager::imagick() on a host without ext-imagick: bare PHP CLI, a container built without the PECL extension, or after a PHP upgrade left a version-mismatched extension silently unloaded.","commonSituations":"Production Docker image differs from dev; PHP major-version upgrade breaks the compiled extension (API mismatch -> not loaded); Alpine images missing php8X-imagick; CI matrix testing drivers the runner cannot support.","solutions":["Install the extension: apt install php-imagick (Debian), apk add php83-imagick (Alpine), or pecl install imagick plus extension=imagick.so in the ini","Verify with `php -m | grep imagick` and `php --ri imagick` (also shows the linked ImageMagick version)","Confirm the ini file lives in the scanned directory shown by `php --ini` after rebuilding the container","If the extension cannot be installed in that environment, construct the manager with the GD driver instead"],"exampleFix":"# before: Dockerfile without imagick\nFROM php:8.3-fpm\n\n# after\nFROM php:8.3-fpm\nRUN apt-get update && apt-get install -y libmagickwand-dev \\\n    && pecl install imagick \\\n    && docker-php-ext-enable imagick","handlingStrategy":"validation","validationCode":"if (!extension_loaded('imagick') || !class_exists('Imagick')) {\n    $manager = new \\Intervention\\Image\\ImageManager(['driver' => 'gd']);\n} else {\n    $manager = new \\Intervention\\Image\\ImageManager(['driver' => 'imagick']);\n}","typeGuard":"function imagickDriverAvailable(): bool\n{\n    return extension_loaded('imagick') && class_exists('Imagick');\n}","tryCatchPattern":"try {\n    $manager = new \\Intervention\\Image\\ImageManager(['driver' => 'imagick']);\n} catch (\\Intervention\\Image\\Exceptions\\MissingDependencyException $e) {\n    $manager = new \\Intervention\\Image\\ImageManager(['driver' => 'gd']);\n}","preventionTips":["Run `php -m | grep imagick` in your Docker build/CI to fail fast on missing extensions","Bake ext-imagick plus delegate libraries into dedicated image variants","Re-verify extensions after every PHP major upgrade (compiled extensions silently drop on API mismatch)"],"tags":["imagick","extension","missing-dependency","setup","docker"],"backgroundTag":"missing-php-extension","analyzedSha":"5598b9e39751c34afc5cdee84abef77f92c26f68","analyzedAt":"2026-08-23T02:17:31.068Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}