Запуск PHP версии 5.2.5 на Windows Server 2003 с IIS.
Имейте практически идентичный сервер, где мы смогли установить ImageMagick без проблем. Он работает с той же версией php. Для установки были выполнены следующие шаги, но на этом сервере он просто не работает. Сам ImageMagick установлен, но php не загружает расширение.
Мы потратили часы, пытаясь установить расширение. Он просто не появится в phpinfo ().
УСТАНОВИТЬ ШАГИ
Чтобы установить IMagick в Windows XP (PHP 5.2.x)
загрузить и установить ImageMagick-6.5.8-7 Q16-windows-dll.exe
http://www.imagemagick.org/download/binaries/ImageMagick-6.5.8-7-Q16-windows-dll.exe
скачать php_imagick_dyn-Q16.dll
с php_imagick_dyn-Q16.dll
http://valokuva.org/outside-blog-content/imagick-windows-builds/080709/
скопируйте DLL в [PHP] / dir и переименуйте его в php_imagick.dll
Вы должны отредактировать файл php.ini
и добавить новое расширение:
extension=php_imagick.dll
Сохраните php.ini
и перезапустите сервер Apache. (При необходимости перезагрузите Windows)
phpinfo()
должен показывать включенное изображение.
Нашел очень полезный ответ, который дал пользователь 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 бит на пиксель» (имя файла: 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) 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 для 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
В Windows вы должны проверить 3 параметра, если хотите добавить расширение на php-сервер:
Версия компилятора, скомпилированная вашим php-сервером (VC9 или VC10), указанная в phpinfo()
.
Номер API расширения PHP, который указан в phpinfo()
.
Наиболее важным параметром является то, является ли ваш веб-сервер ts (потокобезопасным) или nts (небезопасный поток), который указан в phpinfo()
.
Я понял, что по умолчанию IIS является nts, а расширение php должно быть скомпилировано с помощью php-библиотеки nts для правильной работы на вашем веб-сервере. Однако, если вы хотите правильно загрузить ваше расширение, ваше расширение и ваш веб-сервер php должны быть одинаковыми в этих трех параметрах.
Это старый вопрос, но раньше я сталкивался с аналогичными проблемами с PHP / IIS. Несколько вещей, которые я мог бы предложить дважды проверить:
На обоих http://www.imagemagick.org/download/binaries/ и http://valokuva.org/outside-blog-content/ имеется несколько файлов DLL: один для x64 и другой для x86. Если ваша Windows XP 32-разрядная, вам нужно попробовать x86 DLL.
Вам не нужно перезапускать окна. Вам необходимо перезапустить пулы приложений, в которых работает PHP exe. Это может быть сделано путем сброса IIS (это лучший вариант для сброса всех пулов приложений). Или переработайте пулы приложений, на которых запущен PHP.
ничего не работало, пока я не установил права на папку imagick и c: \ windows \ temp (IUSR read / execute для imagick, read / write / execute для Windows \ temp).
* Я не на 100% уверен, что чтение / запись / выполнение были необходимы для Windows \ temp, но он был указан на сайте где-то во время моего google-серфинга *
Довольно точно, что часть перезагрузки состоит в том, чтобы убедиться, что папка imagick находится в каталоге системного пути и отображается в phpinfo (), она уже была на моем пути, поэтому мне не пришлось перезагружаться после установки разрешений.
Это довольно сложно сопоставить расширениям imagix с их базой и версией PHP. Итак, чтобы избавиться от проблем установки, я бы предложил использовать стек сервера, который отправляет Imagick и его расширение, например WPN-XM .
В моем случае перезагрузка Windows (упомянутая в шаге 4) сделала трюк.