Как установить расширение ImageMagick PHP для использования на сервере IIS на сервере Windows - PullRequest
0 голосов
/ 03 мая 2019

У меня есть веб-сервер Windows 2012r2, и я хочу установить на него расширение php Imagemagick, но все У меня пробовал после того, как ему не удалось его получитьотображаться в phpinfo ().

Как мне запустить imagemagick?Я не могу найти рабочие шаги установки для IIS.

1 Ответ

0 голосов
/ 03 мая 2019

В конце концов я попал на blogpost , который является репостом удаленного сообщения от PhilipD , которое было опубликовано в неправильном формате и не исправлено.Так что вопрос был удален.

Я пересылаю ответ PhilipD здесь, чтобы его было легче найти людям, сталкивающимся с той же проблемой, потому что мне понадобилось полдня разочарования, чтобы найти сообщение в блоге , которое сработало.Эти шаги описывают 32-битную установку.Я сделал 64-битную установку для моего 64-битного php.


Это на Windows Server 2012R2 (64-битный) сервер, использующий IIS в качестве приложения веб-сервера.Однако я установил 32-разрядную версию всего программного обеспечения, связанного с ImageMagick, поскольку приложение веб-сервера (IIS) является 32-разрядным.Ниже показаны версии, которые были текущими / последними на октябрь 2017 года.

1.Загрузите установщик ImageMagick

  • Перейдите на http://www.imagemagick.org/

  • Нажмите «Загрузить» в строке меню

  • Затем « Бинарные выпуски Windows » в верхних ссылках или прокрутите вниз
  • Выберите «Динамический Win32 с 16-битным компонентом», убедитесь, что вы выбрали динамический компонента не статика.

2.Загрузите модуль php для ImageMagick

  • Перейдите на http://windows.php.net/downloads/pecl/releases/imagick/
  • Выберите самую высокую версию, которая не является версией "RC" (Release Candidate) - в настоящее время 3.4.3
  • Выберите запись для версии PHP (7.1), для VC14, x86 и «NTS» (Non Thread Safe) для IIS
  • . Загрузите и сохраните ZIP-файл.

3.Загрузите пакет зависимостей для PHP, чтобы загрузить / использовать ImageMagick

  • Перейти к http://windows.php.net/downloads/pecl/deps/
  • Выберите пакет «ImageMagick» с наибольшим номером версии
    • * обратите внимание, что это может быть не та же версия, что и элемент в (1.) выше
  • Выберите версии "vc14" и "x86" *

4.Разблокируйте каждый из загруженных файлов

Это может или не может быть необходимым в зависимости от того, как вы загрузили его, но вы всегда должны проверять и «разблокировать» загруженные файлы, если это необходимо.

  • Щелкните правой кнопкой мыши по каждому файлу и выберите «Свойства» во всплывающем меню
  • , если в диалоговом окне свойств отображается текст «Этот файл получен с другого компьютера и может быть заблокирован для защитыэтот компьютер »,
    • нажмите кнопку« Разблокировать »
    • нажмите OK.

Если вы не «разблокируете» загруженные файлы, особенно для ZIP-файлов, отдельные файлы, которые установлены или скопированы, могут быть помечены как «заблокированные».», И это может иногда вызывать некоторые странные проблемы при запуске программного обеспечения.

5.Установка приложения Imagick

  • Запустите ImageMagick-7.0.7-8-Q16-x86-dll.exe для его установки
  • Примите лицензионное соглашение
  • Примитезначения по умолчанию на каждом экране в процессе установки.

После завершения установки, чтобы проверить ее успешность, откройте командную строку и выполните следующие две команды:

magick wizard: wizard.jpg
magick wizard.jpg win:

Это должно отобразить окно «IMDisplay», показывающее эскиз / изображение мастера за мольбертом, создающим портрет Моны Лизы.

6.Установите зависимости

  • Разархивируйте файл, загруженный на шаге 3.
  • Перейдите в каталог bin
  • Скопируйте файлы IM_MOD_RL_*.dll ( 125 файлов) в папку для установленной версии ImageMagick, например C:\Program Files (x86)\ImageMagick-7.0.7-Q16
  • Вернитесь в каталог bin
  • скопируйте файлы CORE_RL_*.dll ( 20 файлов ) в папку для установленной версии ImageMagick, например C:\Program Files (x86)\ImageMagick-7.0.7-Q16 * * В приглашении, если вы хотите перезаписать / переименовать, выберите перезаписать
    • Обратите внимание, что это нарушит командную версию Imagick. magick: Неправильная версия библиотеки JPEG: для библиотеки 80, ожидающий вызов 62

7.УстановкаImagick PHP расширение DLL

  • Распакуйте файл, загруженный на шаге 2.
  • скопируйте файл php_imagick.dll в папку "ext" для установленной версии PHP на сервере, например C:\php\7.1\ext.

Не копировать файлы CORE_RL_ *
В некоторых статьях в Интернете вы также увидите инструкции по копированию файлов CORE_RL_ * из этого набора для замены файлов в папке ImageMagick, но это неверно; соответствующие версии этих файлов были скопированы на шаге 6.

8. Изменить PHP.ini

  • Отредактируйте файл php.ini в папке программного обеспечения PHP, например «C: \ PHP \ 7.1 \ php.ini»
  • Добавьте следующую строку в раздел, содержащий другие расширения:

       extension=php_imagick.dll
    

9. Перезагрузите сервер.

Перезагрузка IIS кажется недостаточной, необходимо перезагрузить всю машину. Этот пробел связан с тем, что IIS не распознает запись PATH, в которую вошел Imagick.

10. Тест PHPINFO

  • Создайте файл PHP в корневом веб-каталоге, содержащий следующее:

  • Доступ к этому файлу в веб-браузере,

  • Поиск раздела «Imagick», который теперь должен существовать в выводе PHPINFO.

Это должно выглядеть следующим образом:

модуль imagick imagick: включен модуль imagick версии 3.4.3
классы imagick Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
Imagick скомпилирован с версией ImageMagick ImageMagick 6.9.3-7 Q16 x86 2016-03-27 http://www.imagemagick.org
Imagick с использованием версии библиотеки ImageMagick ImageMagick 6.9.3-7 Q16 x86 2016-03-27 http://www.imagemagick.org
ImageMagick, авторское право Copyright (C) 1999-2015 ImageMagick Studio LLC
Дата выхода ImageMagick 2016-03-27
Количество поддерживаемых форматов ImageMagick: 216
ImageMagick поддерживает форматы 3FR, AAI, AI, ART, ARW, AVI, AVS, BGR, BGRA, BGRO, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CLIPBOARD, CMYK CMYKA, CR2, CRW, CUR, CUT, DATA, DCM, DCR, DCX, DDS, DFONT, DJVU, DNG, DOT, DPS, DPX, DXT1, DXT5, EMF, EPDF, EPI, EPS, EPS2, EPS3, EPSF EPSI, EPT, EPT2, EPT3, ERF, EXR, FAX, FITS, FPX, FRACTAL, FTS, G3, GIF, GIF87, GRADIENT, СЕРЫЙ, GROUP4, GV, H, HALD, HDR, ГИСТОГРАММА, HRZ, HTM, HTML , ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, J2C, J2K, JBG, JBIG, JNX, JP2, JPC, JPM, JPT, JSON, K25, KDC, LABEL, M2V, M4V, MAC , MAGICK, MAP, MASK, MAT, MATE, MEF, MIFF, MKV, MONO, MOV, MP4, MPC, MPEG, MPG, MRW, MSL, MTV, MVG, NEF, NRW, NULL, ORF, OTB, OTF, PAL , PALM, PAM, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PICON, PICT, PIX, PLASMA, PNM, PPM, PREVIEW , PS, PS2, PS3, PSB, PSD, PTIF, PWP, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGBA, RGBO, RGF, RLA, RLE, RMF, RW2, SCR, SCREENSHOT, SC T, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, SUN, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIFF, VIPS, VST, WBMP, WEBP, WMF, WMV, WPG, X3F, XBM, XC, XCF, XPM, XPS, XV, YCbCr, YCbCrA, YUV

Важно:
Если в разделе «поддерживаемые форматы» отсутствуют форматы или указано только небольшое количество форматов, то наиболее вероятной причиной является то, что вы пропустили копирование одного или нескольких файлов IM_MOD_RL_ * или CORE_RL_ * DLL в папку ImageMagick, или вы скопировали их из набора «php_magick».

11. Генерация тестового изображения с использованием ImageMagick в PHP

Создайте файл PHP в корневом веб-каталоге, содержащий следующее (я скопировал это из одной из записей в этом элементе Проверка установки ImageMagick):

<?php
error_reporting(E_ALL); 
ini_set( 'display_errors','1');
/* Create a new imagick object */
$im = new Imagick();
/* Create new image. This will be used as fill pattern */
$im->newPseudoImage(50, 50, "gradient:red-black");
/* Create imagickdraw object */
$draw = new ImagickDraw();
/* Start a new pattern called "gradient" */
$draw->pushPattern('gradient', 0, 0, 50, 50);
/* Composite the gradient on the pattern */
$draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);
/* Close the pattern */
$draw->popPattern();
/* Use the pattern called "gradient" as the fill */
$draw->setFillPatternURL('#gradient');
/* Set font size to 52 */
$draw->setFontSize(52);
/* Annotate some text */
$draw->annotation(20, 50, "Hello World!");
/* Create a new canvas object and a white image */
$canvas = new Imagick();
$canvas->newImage(350, 70, "white");
/* Draw the ImagickDraw on to the canvas */
$canvas->drawImage($draw);
/* 1px black border around the image */
$canvas->borderImage('black', 1, 1);
/* Set the format to PNG */
$canvas->setImageFormat('png');
/* Output the image */
header("Content-Type: image/png");
echo $canvas;
?>

Запустите этот файл PHP в браузере. На нем должно отображаться изображение, содержащее текст «Hello World!».

Hello world with freehand circle and arrows pointing to it

12. Проверка на ошибки

Проверьте файл php-errors.log на наличие ошибок.
Вы можете найтиопределенное расположение файла php-errors.log в файле php.ini. Проверьте этот файл на наличие недавних ошибок, связанных с установкой ImageMagick.

Для файлов PDF требуется Ghostscript
После установки и настройки всего вышеперечисленного, ImageMagick можно использовать в PHP для преобразования изображений, но его нельзя использовать для преобразования файлов PDF в изображения. Для этого последнего шага, казалось, необходимо было также установить Ghostscript - с https://www.ghostscript.com/download/gsdnld.html, и он работал правильно, только если я установил 64-битную версию Ghostscript (хотя все остальное, что я установил, было 32-битным версия). Установка Ghostscript была всем, что было нужно; никаких изменений в php.ini или любой другой конфигурации не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...