Я пытаюсь использовать 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 работать, наконец, я получил его.
Мои инструкции по установке
Я использую 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.
Прежде всего, вы должны собрать некоторую информацию о своей среде PHP.
Вы можете легко увидеть свою информацию PHP с помощью функции phpinfo()
Необходимая информация:
phpinfo()
. Вы можете скачать бинарный файл с официального сайта ImageMagick . Я рекомендую вам прочитать небольшое введение в разделе «Двоичный выпуск Windows», чтобы убедиться, что «бит-за-пиксель» на выбор (8 или 16). Загрузка последней версии должна быть прекрасной.
Убедитесь, что этот двоичный файл является той же архитектурой, что и ваша PHP-архитектура, которую вы собрали на шаге 1 .
Установите двоичный файл в файл phpx.x.xx\bin
. Например: C:\wamp64\bin\php\php5.6.16\bin
. (Это может быть любая папка, но для удобства я ставлю здесь)
Убедитесь, что «Добавить каталог приложения на ваш системный путь» отмечен. Должен быть проверен по умолчанию.
Расширение DLL
PHP доступно через сайт windows pecl php
Опять же, вы можете просто нажать последнюю версию.
Далее выберите правильную версию на основе собранной информации.
Например: php_imagick-3.4.1-5.6-nts-vc11-x64.zip
Это можно разделить на компоненты:
После того, как вы загрузили файл, вы должны открыть .zip
файл и найти файл с именем: php_imagick.dll . Извлеките этот файл в phpx.x.xx\ext
.
Убедитесь, что .dll
файл полностью доступен вам. Иногда вам нужно разглядеть разблокировать файл.
Чтобы активировать расширение в PHP, вы должны указать в файле php.ini
что вы хотите использовать это расширение. Вы набрали путь к используемому файлу php.ini
на шаге 1.
Добавьте extension=php_imagick.dll
строки extension=php_imagick.dll
в php.ini
Чтобы убедиться, перезагрузите компьютер, чтобы все 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()
После изучения тоже, Imagick, похоже, испытывает проблемы с PHP 5.3 или выше; Загрузите новые DLL с этого сайта ниже ( Неофициально ):
Также найдены другие статьи 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');
http: // localhost /
шоу «воображение» в качестве загруженного расширения
воображаемый модуль | включен
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