Установите Imagick для PHP и Apache в Windows

Шаги, которые я сделал до сих пор:

  1. Я установил Imagick на свою машину Win7, и он установлен и работает должным образом через командную строку.
  2. Я извлек содержимое php_imagick-3.1.2-5.6-ts-vc11-x86.zip, доступное здесь, в мой каталог \ PHP \ ext.
  3. Включено imagick.dll в php.ini
  4. Rebooted …
  5. При запуске Apache нет ошибок.
  6. Я все еще получаю Fatal error: Class 'Imagick' not found ошибку, когда я пытаюсь запустить скрипт, который использует Imagick.

Текущие версии:

  • Windows 7 x64
  • Apache 2.4.10 x86 VC11 (из Apachelounge)
  • PHP 5.6.3 x86 VC11 TS (из windows.php.net)
  • ImageMagick 6.9.0-0 Q16 x86 (от imagemagick.org)
  • Imagick DLL php_imagick-3.1.2-5.6-ts-vc11-x86.zip ( отсюда )

Я работал с более старой версией PHP, и Imagick работал с этим хорошо, затем я обновил PHP (и библиотеки Imagick DLL вместе с ним), и теперь я не могу заставить его работать.

Глядя на phpinfo( ) , я не вижу там Imagick, поэтому он вообще не загружает модуль. Что странно, потому что я не получаю никаких ошибок при запуске Apache.

Я пробовал практически каждую запись и прохождение для установки Imagick для PHP в Windows, но они, похоже, все написаны для более старых версий PHP.

Может ли кто-нибудь помочь мне установить и запустить? Похоже, что просто отсутствует один простой шаг, который я не могу понять. Если вам нужна дополнительная информация, пожалуйста, спросите. Я сделаю все возможное, чтобы помочь.

У меня php 5.6 NTS x64 установленный в Windows 8.1 pro для моей системы разработки.

EDIT: эта процедура также работала с Windows 10 pro.

Мне не удалось заставить Imagick работать с PHP, используя более раннюю версию ImageMagick, как в принятом ответе, и было трудно найти зеркала с точными безопасными двоичными файлами (двоичные файлы на зеркале в принятом ответе загружены как разные версии, чем перечисленные) ,

На всех этапах ниже убедитесь, что ваша архитектура PHP (x86 / x64 и NTS / TS) соответствует архитектуре двоичного кода. Если вы используете PHP x86 – замените x64-версию загрузок версией x86 (или 32-разрядной). То же самое относится к версиям PHP (Thread-Safe (TS) и Non-Thread-Safe (NTS)).

Я, наконец, все это работаю, выполняя следующие действия:

  1. Перейдите в https://pecl.php.net/package/imagick и загрузите последнюю DLL (3.3.0RC1) во время этого ответа. Imgur
  2. Извлеките php_imagick.dll в D:\php5.6\ext
  3. Извлеките все CORE_RL_*.dll в D:\php5.6Убедитесь, что D:\php5.6 также добавлен в PATH вашей системной среды
  4. Добавьте extension = php_imagick.dll в D:\php5.6\php.ini
  5. Перезапустить встроенный веб-сервер Apache / PHP
  6. Проверьте информацию PHP, чтобы убедиться, что модуль установлен правильно. Imgur Обратите внимание на выделенную версию ImageMagick (ImageMagick 6.9.1-2 Q16 x64) и отсутствующие поддерживаемые форматы
  7. Загрузите и установите соответствующую версию ImageMagick в D:\php5.6\bin с http://www.imagemagick.org/script/binary-releases.php. Убедитесь, что опция Add Path to Environment Variables D:\php5.6\bin или добавлена ​​вручную. Это Imgur ,
  8. Загрузите командную строку и убедитесь, что convert --version отображает правильную версию Imgur
  9. Удалите ранее извлеченные CORE_RL_*.dll в D:\php5.6 (они будут загружены с помощью пути ImageMagick – в противном случае ваша установка PHP может стать нестабильной с DLL PECL)
  10. Перезапустить встроенный веб-сервер Apache / PHP
  11. Проверьте информацию PHP, чтобы убедиться, что модуль все еще установлен правильно и теперь загружает поддерживаемые форматы Imagick Imgur
  12. При желании загрузите и установите Ghostscript в D:\php5.6\bin чтобы иметь возможность конвертировать PDF-файлы в изображения из http://sourceforge.net/projects/ghostscript/, не забудьте сопоставить архитектуру для вашей установки

Мне не нужно было добавлять MAGICK_HOME для Imagick для работы с использованием встроенного веб-сервера PHP или CGI, но может потребоваться для Apache с помощью mod_php . Убедитесь, что у пользователя, использующего PHP, есть разрешение на выполнение convert . Это должно быть унаследовано через D:\php5.6\bin но если вы выбрали установку в C:\Program Files . у вас могут быть проблемы из-за ограниченных разрешений.


Альтернатива для преобразования изображений

Как отмечено в комментариях, вы также можете загрузить необходимые зависимости версии ImageMagick и извлечь файлы exe и dll из каталога bin непосредственно в каталог D:\php5.6 . Зависимости можно найти на веб-сайте PECL http://windows.php.net/downloads/pecl/deps/

Использование зависимостей PECL устраняет необходимость прямой загрузки и запуска соответствующего установщика версии ImageMagick с веб-сайта поставщика.

С помощью метода зависимостей PECL возникли проблемы с исключенными файлами, необходимыми для конверсий PDF с использованием GhostScript.


Особые соображения

Не забудьте изменить переменную System Pare System, чтобы %SystemRoot%\system32\convert.exe не переопределял D:\php5.6\bin\convert.exe .

Добавив свой путь PHP слева от system32, D:\php5.6\bin;%SystemRoot%\system32;%SystemRoot%;... следующие действия: PATH: D:\php5.6\bin;%SystemRoot%\system32;%SystemRoot%;...

Это заставит вашу систему искать исполняемые файлы в D:\php5.6\bin до %SystemRoot%\system32

Замените D:\php5.6\bin\convert.exe на путь, в котором вы установили ImageMagick, или путь туда, где находится convert.exe

https://technet.microsoft.com/en-us/library/cc723564.aspx#XSLTsection127121120120

Я, наконец, получил его работу, вот что мне нужно сделать: (ссылка на http://refreshless.com/blog/imagick-pecl-imagemagick-windows/ )

  1. Установите более старую версию ImageMagick (6.7.7-5 Q16), доступную на этом веб-сайте .
  2. Установите DLL-файлы PECL Imagick (php_imagick-3.1.2-5.6-ts-vc11-x86.zip), загруженные с этой веб-страницы , поместив файл php_imagick.dll в каталог ext PHP и CORE_RL_*_.dll в Каталог Apache bin .
  3. Добавьте переменную MAGICK_HOME с именем MAGICK_HOME в машину со значением [ImageMagick install dir]\modules\coders .
  4. Перезапустите apache и проверьте phpinfo( ) .

Если это не сработает для вас, попробуйте разные версии двоичных файлов ImageMagick и различные версии библиотек PECL.

Еще одно решение, которое работало в трех разных установках Windows (2 Windows 7 и 1 Windows 8.1), заключается в объединении:

ImageMagick-6.7.9-10-Q16-windows.exe с

xampp-win32-1.8.3-5-VC11-installer.exe .

Конечно, вам нужно будет добавить php_imagick.dll в папку php / ext, а также добавить расширение php_imagick.dll в php.ini. Перезапустите apache после того, как вы выполните все вышеперечисленное, и если он жалуется на недостающие вещи, перезагрузите компьютер.

  1. Загрузите правильную версию расширения из http://windows.php.net/downloads/pecl/releases/imagick/. Я выбрал 3.1.2, которая является последней не-бета-версией в это время
    • Разархивируйте и скопируйте php_imagick.dll в папку PHP ext
    • добавить [PHP_IMAGICK] extension = php_imagick.dll в php.ini
    • Загрузите рекомендованную версию Imagick и установите ее из: http://imagemagick.org/script/binary-releases.php#windows (я решил использовать C-заголовки, а также COM-объекты во время установки)
    • Перезапустить apache
    • Проверьте phpinfo () для раздела Imagick … вот оно!