Установка расширения ImageMagick с помощью php / windows - PullRequest
16 голосов
/ 18 мая 2010

Запуск 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 ]

9 голосов
/ 11 декабря 2014

Найдено Очень Полезно, если пользователь ответит на вопрос «Лютик», даже если он может быть более ясным.

Мой сценарий - 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».

Итак, это то, что я сделал (основываясь на решении «Лютик», который я должен сказать снова и снова, большое спасибо!): 1) загрузить последнюю версию установщика ImageMagick EXE с http://www.imagemagick.org/script/binary-releases.php#windows В моем случае я скачал первый файл, доступный в виде 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 logo» + «DLL». В моем случае это было связано с ht tp: //pecl.php.net/package/imagick/3.1.2/windows. На открывшейся странице вы найдете таблицу: вы должны выбрать свой файл в зависимости от: а) номер версии PHP у вас (в моем случае были доступны библиотеки DLL для PHP 5.3, 5.4, 5.5, 5.6) б) x64 или x86 версия PHP у вас есть в) 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 б) скопируйте и замените ВСЕ CORE_RL_ .dll из папки, которую вы только что распаковали, в папку, выбранную вами в пункте # 2. Очевидно, пожалуйста, сделайте резервную копию замененных файлов. В моем случае я скопировал 8 файлов CORE_RL_ .dll из разархивированной папки в C: \ ImageMagick6.9.0. Я перешел в C: \ ImageMagick6.9.0, остальные CORE_RL _ *. Dll не перезаписаны.

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

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

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

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

4 голосов
/ 09 февраля 2014

Я нашел альтернативный источник. Прямая загрузка 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 для 32-битного PHP, 5.5.xx

ImageMagick-6.8.8-vc11-x64.zip для 64-битного PHP, 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

2 голосов
/ 13 января 2013

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

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

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

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

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

1 голос
/ 24 августа 2016

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

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

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

1 голос
/ 12 июля 2014

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

1 голос
/ 04 января 2013

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

1 голос
/ 23 декабря 2010

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

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

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

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

0 голосов
/ 02 февраля 2015

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

0 голосов
/ 18 августа 2011

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

...