2013-08-22 2 views
5

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

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

1-Copy php_imagick_nts.dll из php5-4 каталога из извлеченного http://valokuva.org/~mikko/imagick-php54-php53.tgz в PHP/доб.

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

3-Создать страницу, как это:

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

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

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

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

FatalErrorException: Error: Class 'Imagick' not found 

К сожалению, подробности о продлении Imagick не появляются на выходе из «phpinfo()»

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

+1

Вы пытались перезапустить сервер и PHP? –

ответ

8

Я провел много часов, пытаясь заставить работать 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 \ вн, я использовал этот файл: 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'); 
+0

Спасибо.Он работал для меня в одной попытке, пробовал много других версий, которые не сработали. – Minion

+0

Спасибо. Вы спасли мою жизнь. : D –

+0

Это не работает на моей 64-разрядной системе Win 7 (с использованием всех 32-битных двоичных файлов). Я перезагрузил, проверил путь для дубликатов IM и т. Д. Я повторно установил несколько раз (как WAMP & IM). – Dan

2

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

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

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

Это метод, который вы можете проверить, если модуль даже будучи Переотправленный РНР вообще. 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: Trying to get imagick running on PHP 5.4.3 at Windows x64

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

+0

Спасибо за ваш отзыв MackieeE, но не решили. Я положил его в правильную папку. Чтобы убедиться, я тестирую ваш код (if (! Extension_loaded ('Imagick'))) с другим расширением и работал! Я также снова проверил php.ini на любые ошибки, но нет неправильной строки! Какая проблема вы думаете? –

+0

@AliBagheriShakib Ну, ты не единственный, кому это кажется :) Я нашел другие страницы с той же проблемой, хотя они, вероятно, тоже что-то, что ты нашел ...: | – MackieeE

+0

Hi @MackieeE. Нужно ли устанавливать http://www.imagemagick.org/download/binaries/ImageMagick-6.8.6-8-Q16-x86-dll.exe? Или скопировать файл dll в расширение dir достаточно? –

0

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

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

  • Перезагрузите компьютер.
  • Используйте полный путь к изображению, например:
$image = new Imagick($_SERVER['DOCUMENT_ROOT'] . '/images/test.jpg');
  • Убедитесь, что системная среда имеет 1 единственную запись: C:/ImageMagick и не более переменных окружения для ImageMagick. Если все предыдущие установки имеют путь, а затем удалить эти пути и перезапустить ваш компьютер
  • Убедитесь, что
    http :// localhost/
    из WAMP не появится «Imagick» в качестве загруженного расширения
  • Если расширение правильно загружен, он должен отображаться в phpinfo() также as:
  • imagick module | enabled
  • ImageMagick version|ImageMagick 6.8.0-3 2012-10-24 Q16
    и еще информация о imagemagick.

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

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

-2

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

1º Установите AppServ

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

URL загрузки: ч * TTP: //www.appservnetwork .com/(без *)

Apache порт: 8080

2º Скачать PHP 5.3 (Apache 2.2 не поддерживает выше)

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

Как ?: Потокобезопасная

URL Скачать: * ч TTP: //windows.php.net/download# PHP-5,6 (без *)

3о Stop Apache

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

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

6º Добавить линия

date.timezone = "Америка/Buenos_Aires" (Это моя зона, найти твое на PHP странице)

в "php.ini" в «C: \ Windows \ PHP.ини»

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

7º Start 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

4

После попытки много решений, никто, казалось, Работа.

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

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


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

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

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

Нужная информация:

  • Архитектура: x86 (32-разрядная версия) или x64 (64-разрядная версия)
  • PHP-версия: вы можете найти это в заголовке вывода phpinfo().
  • PHP Extension Сложение: Эта строка содержит 2 важных частей:
    • NTS или TS
    • VCX (как VC11)
  • Loaded Configuration File: путь к вашему используется php.ini файл.

Шаг 2) Скачать Binary

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

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

Шаг 3) Установите Binary

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

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

Шаг 4) Скачать расширение PHP

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

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

Далее, выберите правильную версию на основе собранной информации.
Например: 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, которую вы собрали в , шаг 1.
  • x64 - Это архитектура расширения и должна быть равна вашей архитектуре PHP, которую вы собрали в , шаг 1.

Шаг 5) Извлечение PHP Extension

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

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

Unblock file

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

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

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

PHP.ini Imagick line

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

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


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

+0

Отличные направления ... все еще работают над тем, чтобы заставить их работать, но каталог загрузки Windows на веб-сайте ImageMagick на самом деле http://www.imagemagick.org/script/download.php#windows, а не http: // www. imagemagick.org/script/script/download.php#windows (дополнительный скрипт сценария) –