Как установить ImageMagick для использования с PHP В Windows 7 (3)

есть другие темы о том, как установить Imagick на Windows 7, но пока никакой помощи для меня. :(

(возможно, проблемы возникли с более поздними версиями)

Я выполнил следующие шаги для установки:

  1. скачать и установить ImageMagick

    http://www.imagemagick.org/download/binaries/ImageMagick-6.8.8-1-Q16-x86-dll.exe

  2. скачать php_imagick.dll и копировать в расширение dir (c:xamppphpext)

    http://www.peewit.fr/imagick/php55/vc11/x86/ts/php_imagick.dll

  3. редактировать php.ini файл и добавить новое расширение (c:xamppphpphp - ... ini)

    расширения=php_imagick.dll файлы

  4. сохраните ini-файл и перезапустите Apache (при необходимости перезапустите Windows)

  5. запустите Apache и запустите тест

когда я запускаю Apache, я получаю всплывающее окно, которое отображает:

программа не может запуститься, потому что php5.dll отсутствует на вашем компьютере. Попробуйте переустановить программу, чтобы устранить эту проблему.

затем сразу после этого приходит другой:

запуск PHP: невозможно загрузить динамическую библиотеку 'C:xamppphpextphp_imagick - ... dll ' - указанный модуль не может быть найдено.

согласно funtioneer Я подозреваю, что какая-то ошибка компиляции.

теперь у меня есть PHP версии 5.5.6 (xampp 1.8.3) с компилятором MSVC11, который такой же, как для php_imagick.DLL-файл.

является ли загрузка ImageMagick из источника и компиляция его самостоятельно правильным способом? (никогда не компилировались в Windows раньше)

8 ответов


вместо использования последней версии я попытался загрузить ImageMagick-6.7.7-5-Q16-Windows-dll от здесь. Это действительно сработало с php_imagick.dll (Imagick для PHP 5.5.x) от http://www.peewit.fr/imagick/.

Это не последняя версия, но он работал. (даже без перезагрузки компьютера)


вот что, наконец, сработало для меня, попробовав почти все возможные решения, опубликованные в интернете:

среда:

OS: Windows Server 2008 R2 (64bit)

IIS: 7.5

PHP: 5.5.11 (x86)

PHP.ini: VC11, x86

скачать и установить ImageMagick

ImageMagick-6.8.9-1-Q16-x86-dll.exe

скачать соответствующий .zip от Анатоля предложил источники (слава Анатолю!)

ImageMagick-6.8.9-1-vc11-x86:

извлеките во временную папку и скопируйте содержимое папки " bin " внутри установки Imagemagick (c:\imagemagick) в моем случае перезапись файлов.

скачать .dll и поместите его в папку расширений php (Я использовал это)

Imagick для PHP 5.5.х многопоточной от: http://www.peewit.fr/imagick/

добавить расширение в php.ini с:

extension=php_imagick.dll

сохранить php.ini и перезапустите IIS

наконец, информация о магии изображения была отображена в phpinfo (); вызов.

это невероятно думать, чтобы решить эту проблему нужно скачать файлы из 3 разных мест.

надеюсь, что это помогает.


вот что я сделал, чтобы заставить его работать Примечание: шаг, который действительно споткнулся меня, что на самом деле не объяснил, что php_imagick.версия dll должна соответствовать вашей установке imagick

ОК шагов, я был скачать PHP imagick dll из http://windows.php.net/downloads/pecl/releases/imagick/3.1.2/ (я использовал php_imagick-3.1.2-5.5-ts-vc11-x86.zip)

zip-файл будет содержать много DLL имейте это в виду, нам может понадобиться в будущем. Извлекать php_imagick.dll в папку расширения

поместите это в папку расширения

в php.ini добавить расширение = php_imagick.dll файлы

теперь проблема в том, что нам нужно выяснить, какая версия imagick php_imagick.DLL была скомпилирована для Откройте командную строку и введите php-e-v То, как я это сделал, было с zip, который вы загрузили ранее, извлеките другие библиотеки DLL в свою папку php, вероятно, появится сообщение об ошибке с указанием чего-то о отсутствующих библиотеках DLL. Так извлеките Dll из zip-папки раньше в вашу PHP-папку. Попробуйте снова запустить php-e-v, и он должен работать нормально без сообщения об ошибке. Если это так, то перезапустить Apache. Теперь посмотрите на phpinfo () и перейдите в раздел imagick. Он скажет ImageMagick version: Mine сказал ImageMagick 6.8.6-8, который является более старой версией, чем у них на своем сайте. Проблема в том, что ImageMagick количество поддерживаемых форматов: вероятно, скажет ноль.

Go здесь и скачать соответствие версии и установки (при установке убедитесь, что установлен флажок добавления переменной path)

после завершения установки Stop apache. Удалите библиотеки DLL из папки php, которую вы вставили ранее, и снова запустите apache. Проверять перезапустите apache, и все должно работать.


ImageMagic распределение, которое должно использоваться отсюда http://windows.php.net/downloads/pecl/deps/ . Двоичные файлы ImageMagic должны быть построены с тем же CRT, что и расширение PHP.


см. установка-imagick-php-7 для установки расширения imagick php В Windows с помощью php 7.0 +. Это единственное реальное решение, которое я нашел до сих пор. Это очень подробно.


обновлено: 21.08.2017

Я работал ImageMagick с php 7 и IIS (Apache очень похож): Imagick версия. 3.4.3

PHP 7 NTS x86, Windows Server 2012 x64, IIS 8.5

1) установить VC++ 2015 https://www.microsoft.com/en-US/download/details.aspx?id=48145

2) Get только php_imagick.dll от https://pecl.php.net/package/imagick

3) Поставить это в папку php/ext/ и добавить extension=php_imagick.dll to php.ini

внимание! Минимальные версии поддерживаются PHP >= 5.4.0 и ImageMagick >= 6.5.3-10.

ImageMagick 7 в настоящее время не поддерживаются.

посмотрите на phpinfo:

enter image description here

необходимо установить ImageMagick 6.9.3-7 Q16 x86 4) установить ImageMagick 6.9.3-7 Q16 x86 dll от http://ftp.icm.edu.pl/packages/ImageMagick/binaries/ Не снимите флажок "добавить переменную в путь".

5) перезагрузить сервер

вот и все


он работает, выполнив следующие шаги.

php 5.5 32bit ts+apache 2.4+windows 10 64bit+Imagick 6.9.3-5+php_imagick.dll ts

проверьте, что бит вашей системы бит.

выбрать php_imagick.dll версию http://windows.php.net/downloads/pecl/releases/imagick/

найти php_imagick.dll С

если вы не знаете как выбрать.

тип php -v получить версию php в окне командной строки

выполнить следующий код показывает, какой php вы установили,thread safe или non thread safe.и нажмите здесь поможет вам.

на windows:php -i|find "Thread"

В Linux:php -i|grep Thread

или вы можете выполнить функцию phpinfo() поиск "Thread" на веб-странице.

вы увидите Thread Safety enabled или Thread Safety disabled

другие шаги уже были написаны @embe.


теперь для чего-то в документации не упоминается: установка значения MAGICK_HOME в вашей среде. ImageMagick требует эту переменную, поэтому он знает, где найти все соответствующие кодеры.

Откройте Панель управления и найдите "путь". В результатах выберите "Изменить переменные среды системы". Выберите переменные среды...'option и добавьте новую" системную переменную " (Нижний список). Если вы выбрали другой путь установки, обязательно замените C:\img своим собственным путем.

переменная: MAGICK_HOME

Значение: C:\img\modules\coders

посмотреть подробнее