Задать вопрос
@mmailcompany

Почему не удаётся запустить imagick на php 8.2, 8.3?

На винде 10 стоит связка Nginx - Apache - PHP (7.4 и 8.0) в портабл режиме. Решил добавить свежие версии PHP. И тут пошла песня.
Ссылки откуда качал PHP и imagick.

PHP 8.1. вообще не захотела работать, как ни крутил.

логи

PHP Warning:  PHP Startup: Unable to load dynamic library 'bz2' (tried: ... ) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'curl' (tried: ... ) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'mbstring' (tried: ... ) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'exif' (tried: ... ) in Unknown on line 0
PHP Warning:  PHP Startup: ftp: Unable to initialize module\nModule compiled with module API=20210902\nPHP    compiled with module API=20200930\nThese options need to match\n in Unknown on line 0
PHP Warning:  PHP Startup: fileinfo: Unable to initialize module\nModule compiled with module API=20210902\nPHP    compiled with module API=20200930\nThese options need to match\n in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'gd' (tried: ... ) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'gettext' (tried: ... ) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'imagick' (tried: ... ) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'intl' (tried: ... ) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'mysqli' (tried: ... ) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'odbc' (tried: ... ) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'openssl' (tried: ... ) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: ... ) in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_pgsql' (tried: ... ) in Unknown on line 0

....


Ну ладно, PHP 8.1 не принципиально. Скачал PHP 8.2 и 8.3. настроил ini файл. Всё работает отлично. Качал x64 Thread Safe, что PHP, что imagick.
Добавляю обычным способом imagick к PHP:

66989b7e38d06104203614.png
Результат: расширение не запускается согласно логам, аналогично логам выше, но только imagick.

Указывал и extension=php_imagick.dll, и extension=imagick.
Пробовал другие версии imagick, всяко скрещивал, просто менял сам файл php_imagick.dll (бывало такое в других версиях).
Выдергивал даже PHP8.3 с OpenServer и логи не давали ошибок, но вордпресс в здоровье сайта пишет, что нет расширения, а также отсутствует инфа в функции phpinfo().
В переменные среды - Path, разумеется пути указывал (старые удалял).
через power shell командой php -i проверял, всегда показывало, что imagick есть и версия та, которую ставил.
В общем, идеи закончились.
Быть может есть ссылки на какие-либо источники с работающими архивами/мануалы альтернативного способа установки imagick...
  • Вопрос задан
  • 910 просмотров
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
V_A_B
@V_A_B
¯\_(ツ)_/¯
Попробуйте перекинуть сборку на чистую систему и перед запуском настройте одну из свежих версий. Должно работать. Ссылка, которая в вопросе на imagick указана, актуальна (ставил).

так она стоит и работает отлично (в вопросе написано).


Как вариант можно переименовать/удалить папки ранее используемых версий php ибо:

PHP 8.1. вообще не захотела работать, как ни крутил


какой-то конфликт между версиями есть, если 8.1 вовсе не стартовала...

Ну и в переменных средах лучше по убирать все от прежних версий, если осталось.
Железо, на всякий, тоже ребутните.
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
через power shell командой php -i проверял, всегда показывало, что imagick есть и версия та, которую ставил.
Это говорит о том, что меняли вы не тот php.ini, так как для командной строки и для модуля апача/демона для нжинкса php.ini лежит в другом месте. Тут надо запускать через веб сервер пхп файлик с phpinfo();

а также отсутствует инфа в php info.
Значит просто не туда смотрели. Ищите на страничке ini, смотрите где физически лежит ини файл для веба и меняйте настройки в нем.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Fegra
Аналогичная ситуация:
php-errors.log
[15-May-2025 10:36:21 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'imagick' (tried: C:\WebServer\PHP\ext\imagick (Не найден указанный модуль), C:\WebServer\PHP\ext\php_imagick.dll (Произошел сбой в программе инициализации библиотеки динамической компоновки (DLL))) in Unknown on line 0

Версия PHP - 8.3
Причём PHPInfo() выдаёт следующее:
imagick module enabled
imagick module version 3.8.0
imagick classes Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
Imagick compiled with ImageMagick version ImageMagick 7.1.1-46 Q16 x64 8209e84:20250318
Imagick using ImageMagick library version ImageMagick 7.1.1-47 Q16 x64 82572af:20250329 ImageMagick release date 2025-03-29

Я замучился с этой ошибкой.
Причём ImageMagick вроде и работает, но периодически вылезает указанная выше ошибка.

На PHP5.6 такой проблемы не было.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽