Блог WEB-разработчика о PHP, MySQL, JavaScript и разработке
Инструкция по установке ImageMagick на Windows
ImageMagick — свободный и многоплатформенный пакет программ для неинтерактивной (пакетной) обработки графических файлов. Поддерживает множество графических форматов, выпущен под лицензией GPL. Может использоваться с языками Perl, C, C++, Python, Ruby, PHP, Pascal, Java, в скриптах командной оболочки или самостоятельно. Одним словом это консольный photoshop.
Инструкция по установке на MS Windows
перейдите по адресу http://imagemagick.org/script/binary-releases.php#windows что бы скачать последнюю версию ImageMagick-6.5.4-2-Q16-windows-dll.exe. В случае если эта версия не подошла к вашей системе, вы можете скачать более ранние тут.
Внимание! Измените папку установки программы на C:\imagemagick\
Откройте командную строку ( Пуск->Выполнить введите cmd и нажмите enter ). В появившемся окне введите convert. На экран должно выдать помощь по параметрам конвертирования. Если это так то переходите к следующему шагу.
Иначе нужно сделать вот что: выполните команду Свойства Моего компьютера -> Вкладка Дополнительно -> Переменные среды -> В блоке “системные переменные” найдите переменную с именем Path и добавьте туда еще одно значение C:\imagemagick. Внимание! Значения разделяются точкой с запятой.
Если вы используете PHP версии 5.2.х то скачивайте файл соответствующей версии.
Если у вас PHP версии 5.3.х то качайте для этой версии.
если вы используете стандартный Denwer то это C:\WebServers\usr\local\php5\ext , если PHP лежит в другом месте то в подпапку …\phpdir\ext папки с PHP.
если вдруг вы не обнаружили у себя такой папки, или вы самостоятельно поменяли название папки с расширениями то перемещайте в нее (что бы узнать где находится папка откройте файл php.ini и найдите
Directory in which the loadable extensions (modules) reside.
extension_dir = «Something something»
Установка ImageMagick на XAMPP под Windows
Это самая простая инструкция!
- Устанавливать дистрибутив ImageMagick не нужно!
- Прописывать переменную окружения Windows не нужно!
- Настраивать httpd.conf не нужно!
С помощью PHP-функции phpinfo() определяем следующие параметры:
Architecture (например — x64);
Thread Safety (например — enabled);
Compiler (например — MSVC15).
Заходим на pecl.php.net/package/imagick ищем строчку с последней стабильной версией, например 3.4.4 и жмём DLL.
Скачиваем архив с нужной версийей PHP, потоковой безопасностью и разрядностью, например 7.3 Thread Safe (TS) x64. Имя файла будет таким: php_imagick-3.4.4-7.3-ts-vc15-x64.zip. Важно обратить внимание на версию компилятора (в данном примере — vc15). Она должна совпадать с версией компилятора дистрибутива XAMPP.
Распаковываем архив и копируем файл php_imagick.dll в папку php/ext XAMPP’а.
В файле php/php.ini добавляем строчку extension=imagick .
Если не сделать этих действий, то при попытке обратиться к PHP-классу Imagick мы получм ошибку Fatal error: Class ‘Imagick’ not found .
Заходим на windows.php.net/downloads/pecl/deps и скачиваем файл ImageMagick-*.zip с такой же версией компилятора и разрядностью как в предыдущем архиве. В нашем случае *-vc15-x64.zip .
Распаковываем архив ImageMagick-7.0.7-11-vc15-x64.zip, и копируем файлы CORE_*.dll , FILTER_*.dll и IM_*.dll из папки bin в папку apache/bin XAMPP’а.
Если не выполнить это действие, то при запуске XAMPP мы получим ошибку The program can’t start because CORE_RL_wand_.dll is missing from your computer. Try reinstalling the program to fix this problem . Или такую ошибку Fatal error: Uncaught exception ‘ImagickException’ with message ‘NoDecodeDelegateForThisImageFormat ***’ .
На Denwer устанавливать не пробовал, но думаю там всё аналогично.
Установка расширения ImageMagick с помощью php / windows
Запуск 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 и добавить новое расширение:
Сохраните 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:
Навигация и загрузка: 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
загрузите соответствующие библиотеки 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. Несколько вещей, которые я мог бы предложить дважды проверить:
- Используйте страницу phpinfo, чтобы увидеть, редактируете ли вы правый файл php.ini, посмотрите на «Загруженный файл php.ini» на первой странице (как это глупо, как я уже говорил, раньше это делало 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.
Вам не нужно перезапускать окна. Вам необходимо перезапустить пулы приложений, в которых работает 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) сделала трюк.