Попытка запустить imagick на PHP 5.4.3 в Windows x64


У меня есть Windows 7 64 бит, PHP 5.4.3, установленный через WAMP 2.2 и imagick (ImageMagick-6.8.3-9-Q16-x64-dll.exe). Я пытался использовать PHP dll imagick из многих источников, но все они дают эту ошибку в apache_error.журнал:

PHP Warning:  PHP Startup: Unable to load dynamic library 'c:/wamp/bin/php/php5.4.3/ext/php_imagick.dll' - %1 is not a valid Win32 application.rn in Unknown on line 0

Есть мысли о том, как это решить?

3 6

3 ответа:

Возможно, это поможет вам: пошаговые инструкции по установке IMAGEMAGICK на WAMP? и

Http://www.elxsy.com/2009/07/installing-imagemagick-on-windows-and-using-with-php-imagick/

" просто чтобы прояснить ситуацию, все dll-файлы PHP (библиотеки) являются 32-битными, поэтому, если ваша система 64-битная, и вам все равно нужно будет загрузить и работать с 32-битными ImageMagick, Apache и т. д."

Я прошел через ту же боль. Win64+php-x86. В конечном итоге это оказалось чем - то относительно простым для исправления-все дело в путях.

Сначала я установил полный ImageMagic-x64, а затем, в конце концов, расширение. Позже я заметил, что установщик добавил ImageMagic в начале пути. На всякий случай я попытался с версией x86 и получил различные ошибки о отсутствующих DLL.

Итак, на всякий случай я удалил ImageMagic полностью и очистил все ссылки на него от окружение (оно было в PATH и MAGICK_HOME).

Затем я установил только расширение (в моем случае из http://windows.php.net/downloads/pecl/releases/imagick/3.1.2/ я получил php_imagick-3.1.2-5.4-nts-vc9-x86.zip) и распаковал его в папке ext.

Откровение пришло после того, как я попытался запустить это из командной строки: php-i и получил ошибку, которую он не мог найти CORE_RL_wand_.dll - но я видел его в ext папка!

Добавление C:\Progra~2\PHP\EXT в конце переменной окружения PATH решил ее (убедившись, что нет других библиотек DLL, мешающих).

Примечание: я использовал путь 8.3 для "C:\Program Files (x86)\php\ext" - на всякий случай, поскольку я видел, что PHP иногда придирчив и не может разрешить пути с пробелами в них.

Также - после путаницы с путем вам, возможно, придется перезагрузить компьютер - в моем случае он работал из командной строки сразу, но IIS имел кэшированный (более старый) путь.

В заключение: я подозреваю, что расширение PHP опирается на некоторые библиотеки DLL (которые оно поставляет как часть ZIP), но те же самые файлы также являются частью стандартной установки ImageMagick, за исключением того, что они не совсем одинаковы - если вы загружаете неправильные, забавные вещи происходят...

Для 64-битного WAMP (PHP 5.4.X, PHP 5.4.12 thread safe в моем случае) рабочая комбинация выглядит следующим образом:

ImageMagick-6.8.7-8-Q16-x64-dll.exe или, возможно, последняя версия Q16 / x64 / DLL отсюда: http://www.imagemagick.org/script/binary-releases.php#windows

И php_imagick-svn20120508-5.4-VC9-x64 отсюда: http://www.mediafire.com/php-win64-extensions