Установка расширения ImageMagick с помощью php/windows

Запуск PHP версии 5.2.5 на Windows Server 2003 с IIS.

Имейте фактически идентичный сервер, где мы смогли установить ImageMagick без проблем. Это работает точно такая же версия PHP. Для установки использовались следующие шаги, но на этом сервере он просто не работает. Сам ImageMagick установлен, но php не загружает расширение.

Мы часами пытались установить расширение. Это просто не будет отображаться в phpinfo().

УСТАНОВИТЬ ШАГИ

Чтобы установить IMagick в Windows XP (PHP 5.2.x)

  1. Загрузить и установить ImageMagick-6.5.8-7 Q16-windows-dll.exe http://www.imagemagick.org/download/binaries/ImageMagick-6.5.8-7-Q16-windows-dll.exe

  2. скачать php_imagick_dyn-Q16.dll с http://valokuva.org/outside-blog-content/imagick-windows-builds/080709/

    скопируйте DLL в [PHP]/ расширение dir и переименуйте его в php_imagick.dll

  3. Вы должны отредактировать свой php.ini файл и добавьте новое расширение:

    extension=php_imagick.dll
    
  4. Сохранить php.ini и перезапустите сервер Apache. (При необходимости перезагрузите Windows)

  5. phpinfo() должен показать imagick включен.

10 ответов

Нашел очень полезный ответ пользователя Buttercup, даже если он мог бы быть более ясным.

Мой сценарий был Windows 2012 R2 x64, PHP 5.5.19 x64 и необходимо установить ImageImagick с поддержкой PHP. Следуя приведенным ниже пунктам, я смог установить ImageImagick 6.9.0 x64 и PHP_Imagick.dll 3.1.2 (обе версии на данный момент являются последними стабильными версиями).

Обратите внимание, что я скачал все компоненты (PHP, ImageImagick и PHP_Imagick) в режимах NTS и x64: не в режимах TS и / или x86. Я не знаю, применимо ли это в вашем случае.

Когда я читал Лютик (как для пользователя RhoVisions), мне было непонятно, как его комментарий: "Переписать библиотеки DLL, найденные в ImageMagick 6.8.8 для Windows, версией PHP".

Итак, вот что я сделал (основываясь на решении Buttercup, о котором я должен сказать снова и снова большое спасибо!): 1) загрузить последнюю версию установщика ImageMagick EXE с http://www.imagemagick.org/script/binary-releases.php В моем случае я скачал первый файл, доступный в виде загрузки HTTP, с пометкой "Динамическая Win64 со скоростью 16 бит на пиксель" (имя файла: ImageMagick-6.9.0-0-Q16-x64-dll.exe)

2) Запустите установщик только что скачанный. Я установил его по простому пути, например C:\ImageMagick6.9.0 (но я не думаю, что это так важно, чтобы убрать его из Program Files). Кроме того, я не изменил никаких других параметров из их значений по умолчанию во время установки.

3) загрузить последнюю версию DLL-файла PHP_Imagick с веб-сайта PECL по адресу: http://pecl.php.net/package/imagick Я выбрал стабильную (не бета-версию или RC) версию, в моем случае 3.1.2, нажав на "логотип Windows". Ярлык "+"DLL". В моем случае это было связано с ht tp://pecl.php.net/package/imagick/3.1.2/windows . На открывшейся странице вы найдете таблицу: вы должны выбрать свой файл в зависимости от: a) количества версий PHP, которые у вас есть (в моем случае были доступны библиотеки DLL для PHP 5.3, 5.4, 5.5, 5.6) b) x64 или x86 версия PHP у вас есть c) NTS или TS версия PHP у вас есть Мой случай был PHP 5.5.x, x64, NTS: поэтому я скачал один с надписью "5.5 Non Thread Safe (NTS) x64" (файл имя: php_imagick-3.1.2-5.5-nts-vc11-x64.zip)

4) Разархивируйте ZIP-файл php_imagick и: a) скопируйте файл php_imagick.dll в папку EXT вашей установки PHP; b) скопируйте и замените ВСЕ CORE_RL_ .dll из только что разархивированной папки в папку, выбранную вами в пункте #2. Очевидно, пожалуйста, сделайте резервную копию замененных файлов. В моем случае я скопировал 8 файлов CORE_RL_.dll из разархивированной папки в C:\ImageMagick6.9.0. Я перешел в C: \ ImageMagick6.9.0, остальные CORE_RL_*. Dll не были перезаписаны.

5) Отредактируйте и сохраните файл PHP.ini, чтобы добавить эту простую строку: extension = php_imagick.dll

6) Перезагрузите ваш сервер (к сожалению, я не нашел хорошей альтернативы перезагрузки: также не работал IISRESET из командной строки администратора).

7) Когда перезагрузка завершится, зайдите в браузер удаленно через ваш файл phpinfo.php, чтобы убедиться, что модуль Imagick в порядке. В моем случае это было.

Надеюсь, что это может помочь, там!

Я нашел альтернативный источник. Прямая загрузка PECL.

Установка Шаги приняты

Установка ImageMagick

Где загрузить последнюю версию ImageMagic, совместимую с IIS 8.1 / Windows 2012r2 php x64:

http://windows.php.net/downloads/pecl/deps/

перейдите и загрузите: ImageMagick-6.8.8-vc9-x86.zip для 32-битной версии PHP, 5.4.xx

ImageMagick-6.8.8-vc11-x86.zip для PHP 32-разрядная версия 5.5.xx

ImageMagick-6.8.8-vc11-x64.zip для PHP 64-bit, 5.5.xx

Подсказки:

  • Перезаписать библиотеки DLL из ImageMagick 6.8.8 версии Windows версией PHP.

  • Вам необходимо перезагрузиться, если файлы заблокированы в памяти.

расположение php_imageMagick.dll

http://windows.php.net/downloads/pecl/releases/imagick/

Загрузите соответствующие библиотеки DLL.

Вы получаете последнюю версию DLL-файлов ImageMagick, php_imagemagick.dll (как не поточно-безопасную, так и поточно-безопасную версии).

Совет:

  • Если у вас отсутствует php5ts.dll, вы скачали неправильную версию php_imagemagic.dll и загрузили другую версию.

  • если вы используете IIS - используйте версию 'NTS' - php_imagemagick_nts.dll

  • если вы используете Apache - используйте версию 'TS' - php_imagemagick_ts.dll

В Windows вы должны проверить 3 параметра, если вы хотите добавить расширение на php сервер:

  1. Версия компилятора, с которой ваш php-сервер скомпилирован (VC9 или VC10), которая указана в phpinfo(),

  2. Номер API расширения PHP, который указан в phpinfo(),

  3. Наиболее важным параметром является то, является ли ваш веб-сервер TS (потокобезопасным) или NTS (не потокобезопасным), который указан в phpinfo(),

По своему опыту я обнаружил, что IIS по умолчанию является nts, и расширение php должно быть скомпилировано с библиотекой nts php для правильной работы на вашем веб-сервере. Однако ваше расширение и ваш веб-сервер php должны быть одинаковыми по этим трем параметрам, если вы хотите правильно загрузить свое расширение.

Вам не нужно перезагружать Windows. Вам нужно перезапустить пулы приложений, на которых работает PHP exe. Это можно сделать, сбросив IIS (это лучший вариант для сброса всех пулов приложений). Или перезапустите пулы приложений, на которых работает PHP.

Это старый вопрос, но я сталкивался с подобными проблемами с PHP/IIS раньше. Несколько вещей, которые я мог бы предложить перепроверить:

  • Используйте страницу phpinfo, чтобы увидеть, редактируете ли вы правильный файл php.ini, посмотрите "Loaded php.ini file" на первой странице (как бы глупо это не звучало, я уже делал это раньше - иногда PHP будет выглядеть для него в его собственной папке, иногда C:\Windows)
  • также попробуйте включить display_errors для On и error_reporting для E_ALL в php.ini и посмотреть, есть ли сообщения об ошибках в самом низу файла phpinfo. Как правило, он по крайней мере признает, что не может загрузить вашу DLL.

На обоих http://www.imagemagick.org/download/binaries/ и http://valokuva.org/outside-blog-content/ есть несколько файлов DLL: один для x64, а другой для x86. Если ваша Windows XP 32-битная, вам нужно попробовать x86 DLL.

Ничего не работало, пока я не установил разрешения для папки imagick и c:\windows\temp (чтение / выполнение IUSR для imagick, чтение / запись / выполнение для windows \ temp).

* Я не на 100% уверен, что чтение / запись / выполнение было необходимо для windows \ temp, но оно было указано на сайте где-то во время моего серфинга в Google *

Уверен, что часть перезагрузки просто для того, чтобы убедиться, что папка imagick находится в каталоге вашего системного пути и отображается в phpinfo(), она уже была в моем пути, поэтому мне не пришлось перезагружаться после установки разрешений.

Довольно сложно сопоставить расширения imagick с их базой и версией PHP. Итак, чтобы избавиться от хлопот установки, я бы предложил использовать стек серверов, который поставляется с Imagick и его расширением, например WPN-XM.

Я знаю, что это старый вопрос, но я попал сюда по Google, так что, вероятно, другие тоже. Для них вот самое быстрое и простое решение: https://mlocati.github.io/articles/php-windows-imagick.html

Это сработало для меня, и это намного проще, чем большинство проголосовавших здесь ответов (и которые показались мне слишком сложными, например, установка команды imagick as cmd.com - зачем?)

В моем случае перезагрузка Windows (упомянутая в шаге 4) сделала свое дело.

Другие вопросы по тегам