Imagick php windows

Я пытаюсь использовать iMagick в Symfony2.

Я использую PHP 5.4.16 и все, что я сделал:

1-Скопировать php_imagick_nts.dll из каталога php5-4 из извлеченного http://valokuva.org/~mikko/imagick-php54-php53.tgz в php / ext.

2-Переименуйте его в php_imagick.dll и добавьте «extension = php_imagick.dll» в php.ini

3-Создайте страницу следующим образом:

<?php $a = new Imagick(); ?> 

но я получаю это:

 Fatal error: Class 'Imagick' not found in C:\xampp\htdocs\info.php 

Когда я пытался использовать это в контроллере symfony, ошибка повторяется снова:

 FatalErrorException: Error: Class 'Imagick' not found 

К сожалению, подробности о расширении imagix не отображаются в выводе "phpinfo ()"

Является ли эта версия несовместимой с PHP 5.4.16?! Если да, то какую версию я должен использовать? Где? Спасибо за любую помощь …

Я потратил много часов, пытаясь заставить Imagick работать, наконец, я получил его.

Мои инструкции по установке

  1. Установите WAMP 32bit (даже если вы используете 64-битную систему, вы должны использовать 32-битную версию WAMP)
  2. Установите ImageMagick на C: / imagemagick, используйте этот файл: https://www.dropbox.com/s/i2mhrhd7sp0ilzk/ImageMagick-6.8.0-3-Q16-windows-dll.exe
  3. Поместите DLL с Imagick в папку расширения PHP, например D: \ wamp32 \ bin \ php \ php5.4.16 \ ext, я использовал этот файл: https://www.dropbox.com/s/ayankf850l08rm2/php_imagick.dll
  4. В php.ini поставить строку «SetEnv MAGICK_HOME C: / imagemagick» без кавычек
  5. Лучше перезагрузить ПК

Я использую Wamp 2.4, PHP 5.4.16, Apache 2.4.4, ImageMagick 6.8.0-3 2012-10-24 Q16, Imagick 3.1.0RC2 – все 32bit, OS Win8 64bit

Теперь он должен работать, и вы должны увидеть расширение Imagick, загруженное в phpinfo.

Я пробовал много версий ImageMagick, но более новые версии не работали, 6.8.0-3-Q16-windows-dll отлично работает.

Symfony2

В Symfony2 используйте Imagick следующим образом:

 $im = new \Imagick('image.jpg'); 

После многих решений никто не работал.

Мне удалось установить его на Windows 10 64-bit, Apache 2.4 и PHP 5.6, но я думаю, что он должен работать для всех версий.

Надеюсь, вам не составит труда установить Imagick для PHP.


Шаг 1) Соберите информацию

Прежде всего, вы должны собрать некоторую информацию о своей среде PHP.

Вы можете легко увидеть свою информацию PHP с помощью функции phpinfo()

Необходимая информация:

  • Архитектура: x86 (32-разрядная) или 64-разрядная (64-разрядная)
  • PHP-версия: вы можете найти это в заголовке phpinfo() .
  • PHP Extension Build: эта строка содержит две важные части:
    • NTS или TS
    • VCx (например, VC11)
  • Загруженный файл конфигурации: путь к используемому файлу php.ini .

Шаг 2) Загрузить двоичный файл

Вы можете скачать бинарный файл с официального сайта ImageMagick . Я рекомендую вам прочитать небольшое введение в разделе «Двоичный выпуск Windows», чтобы убедиться, что «бит-за-пиксель» на выбор (8 или 16). Загрузка последней версии должна быть прекрасной.

Убедитесь, что этот двоичный файл является той же архитектурой, что и ваша PHP-архитектура, которую вы собрали на шаге 1 .

Шаг 3) Установите двоичный файл

Установите двоичный файл в файл phpx.x.xx\bin . Например: C:\wamp64\bin\php\php5.6.16\bin . (Это может быть любая папка, но для удобства я ставлю здесь)

Убедитесь, что «Добавить каталог приложения на ваш системный путь» отмечен. Должен быть проверен по умолчанию.

Шаг 4) Загрузите расширение PHP

Расширение DLL PHP доступно через сайт windows pecl php

Опять же, вы можете просто нажать последнюю версию.

Далее выберите правильную версию на основе собранной информации.
Например: php_imagick-3.4.1-5.6-nts-vc11-x64.zip

Это можно разделить на компоненты:

  • php_imagick-3.4.1 – Это расширение php imagick с версией. Это не важно.
  • 5.6. Это ваша версия PHP и должна быть равна используемой вами PHP-версии, которую вы определили на шаге 1 .
  • NTS – это должно быть равно информации вашего PHP Extension Build, которую вы собрали на шаге 1 .
  • VC11 – Это также должно быть равно информации вашего PHP Extension Build, которую вы собрали на шаге 1 .
  • x64 – Это архитектура расширения и должна быть равна вашей архитектуре PHP, которую вы собрали на шаге 1 .

Шаг 5) Извлечение расширения PHP

После того, как вы загрузили файл, вы должны открыть .zip файл и найти файл с именем: php_imagick.dll . Извлеките этот файл в phpx.x.xx\ext .

Убедитесь, что .dll файл полностью доступен вам. Иногда вам нужно разглядеть разблокировать файл.

Разблокировать файл

Шаг 6) Активируйте расширение PHP

Чтобы активировать расширение в PHP, вы должны указать в файле php.ini что вы хотите использовать это расширение. Вы набрали путь к используемому файлу php.ini на шаге 1.

Добавьте extension=php_imagick.dll строки extension=php_imagick.dll в php.ini

Строка PHP.ini Imagick

Шаг 7) Перезагрузите компьютер

Чтобы убедиться, перезагрузите компьютер, чтобы все Environment Path были правильно загружены.


Это должно правильно установить Imagick с последними версиями и правильной архитектурой. Imagick также должен быть указан в phpinfo() с соответствующими «поддерживаемыми форматами ImageMagick» (просто убедитесь, что он не пуст).

Я совершенно уверен, что это связано с неправильной загрузкой модуля или с расширением .dll в неправильном расположении.

Вы можете использовать внутреннюю функцию PHP extension_loaded () для проверки перед использованием класса,

 <?php /** * **/ if (!extension_loaded('Imagick')) { //Load some error. } ?> 

Это метод, который вы можете проверить, даже если модуль вообще полностью игнорируется PHP. PHP также предоставляет функцию для просмотра ваших текущих расширений get_loaded_extensions () :

 <?php /** * Get an Array of current * PHP extensions for debugging **/ print_r( get_loaded_extensions() ); ?> 

Убедитесь, что вы сделали:

  • Проверьте правильность расположения папки библиотеки расширений в вашем phpinfo()
  • Выполните жесткий перезапуск сервера xmapp / wamp.
  • Если вы находитесь на PHP 5.4 или выше (как и вы!), См. Сайт ниже для обновленных бинарных файлов

После изучения тоже, Imagick, похоже, испытывает проблемы с PHP 5.3 или выше; Загрузите новые DLL с этого сайта ниже ( Неофициально ):

http://www.peewit.fr/imagick/

Также найдены другие статьи StackOverFlow, которые имеют одинаковую проблему:

Stackoverflow : попытка заставить imagick работать на PHP 5.4.3 в Windows x64

Кроме того, вы можете использовать расширение GD для более или менее выполнения некоторых из тех же функций, которые вам нужны. Я считаю, что GD является более широко поддерживаемым модулем / расширением в более поздних версиях PHP.

Я использую: Wamp 2.4, PHP 5.4.16, Apache 2.4.4, ImageMagick 6.8.0-3 2012-10-24 Q16, Imagick 3.1.0RC2 – все 32bit, OS Win7 32bit

Инструкции, данные fmstoun, работали для меня отлично. Поскольку я потратил много часов, пытаясь заставить работать dll, я хотел бы добавить к шагам, данным fmstoun.

  • Перезагрузите компьютер.
  • Используйте полный путь к изображению, например:
  $ image = new Imagick ($ _ SERVER ['DOCUMENT_ROOT']. '/images/test.jpg'); 
  • Убедитесь, что в вашей системной среде есть одна запись для: C: / imagemagick и не более переменных окружения для imagemagick. Если какие-либо предыдущие установки имеют путь, удалите эти пути и перезагрузите компьютер
  • Убедиться
      http: // localhost / 

    шоу «воображение» в качестве загруженного расширения

  • Если расширение загружено правильно, оно должно отображаться в phpinfo () также как:
  •   воображаемый модуль |  включен 
  •   ImageMagick версия | ImageMagick 6.8.0-3 2012-10-24 Q16 

    и еще немного информации о imagemagick.

Учитывая дату этого сообщения, последней версией imagemagick, представленной на официальном сайте, является: ImageMagick-6.8.8-1-Q16-x86-dll.exe, которая не может загрузить расширение (как видно из журналов ошибок apache после перезапуска ). Следовательно, используйте версию, указанную fmstoun.

Надеюсь, что этот ответ спасет пару часов работы и сэкономит время, необходимое для прохождения примерно 15 вопросов SO на ту же тему, а также на разных форумах.

Извините за мой плохой английский:

1º Установить Appserv

Имя файла: "appserv-win32-2.5.10.exe"

Загрузка URL: h * ttp: //www.appservnetwork.com/ (без *)

Порт Apache: 8080

2º Загрузить PHP 5.3 (Apache 2.2 не поддерживает превосходство)

Имя файла: "php-5.3.29-Win32-VC9-x86.zip"

Как ?: Thread Safe

URL Download: h * ttp: //windows.php.net/download#php-5.6 (без *)

3º Остановить Apache

4º Удалить все содержимое в папке «.. \ AppServ \ php5»

5º Скопируйте содержимое zip в ".. \ AppServ \ php5"

6º Добавить строку

date.timezone = "America / Buenos_Aires" (Это моя зона, найдите свою в php-странице)

к «php.ini» в «c: \ Windows \ php.ini»

избежать ошибки даты в PHP

7º Начало Apache

=============================

IMAGIC (как только PHP 5.3 установлен)

1º Instalññ Магия изображения 6.7 (Не выше, PHP 5.3 не поддерживает)

Имя файла: "ImageMagick-6.7.9-9-Q16-windows-dll.exe"

Загрузка URL: http://ftp.icm.edu.pl/packages/ImageMagick/binaries/

2º Скачать Imagic

Имя файла: "php_imagick-3.1.2-5.3-ts-vc9-x86.zip"

Загрузка URL: http://windows.php.net/downloads/pecl/releases/imagick/3.1.2/

3º В каталоге «php5 / ext» добавьте файл «php_imagick.dll» из последней загрузки zip (другие файлы не заботятся)

4º Добавить строку

расширение = php_imagick.dll

к «php.ini» в «c: \ Windows \ php.ini»

5º Перезапустить Apache