Подтвердить что ты не робот

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

Запуск PHP версии 5.2.5 на Windows Server 2003 с помощью IIS.

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

Мы потратили часы, пытаясь установить расширение. Он просто не появится в phpinfo().

УСТАНАВЛИВАЙТЕ ШАГИ

Для установки IMagick в Windows XP (PHP 5.2.x)

4b9b3361

Ответ 1

Нашел очень полезный ответ, который дал пользователь 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. Я не знаю, применимо ли это в вашем собственном случае.

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

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

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

3) загрузите последнюю версию DLL файла PHP_Imagick с веб-сайта PECL по адресу: http://pecl.php.net/package/imagick Я выбрал стабильную версию (не Beta или RC), в моем случае 3.1.2, щелкнув на значке "Логотип Windows" + "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, которую вы имеете c) НТС или 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, чтобы добавить эту простую строку: расширение = php_imagick.dll

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

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

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

Ответ 2

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

Установленные шаги

Установка ImageMagick

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

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

перейти и загрузить: ImageMagick-6.8.8-vc9-x86.zip для PHP 32-bit, 5.4.xx

ImageMagick-6.8.8-vc11-x86.zip для PHP 32-бит, 5.5.xx

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

Ответ 3

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

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

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

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

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

Ответ 4

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

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

Ответ 6

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

Ответ 7

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

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

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

Ответ 8

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

Ответ 9

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