在Windows x64上尝试在PHP 5.4.3上运行imagick。

6

我使用的是Windows 7 64位操作系统,通过WAMP 2.2安装了PHP 5.4.3和imagick (ImageMagick-6.8.3-9-Q16-x64-dll.exe)。我尝试使用来自许多来源的php imagick dll,但它们都在apache_error.log中报告以下错误:

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.\r\n in Unknown on line 0

有什么解决这个问题的想法吗?
3个回答

4

64位的Imagemagick动态链接库可以在这里找到: http://pecl.php.net/package/imagick/3.1.2/windows - SileNT
关于在32位ImageMagick、Apache等操作的评论是不正确的。只要使用正确的库,在所有64位设置中都可以正常工作。 - guntars

3
我经历过同样的痛苦。Win64+php-x86。最终发现问题相对简单——一切都与路径有关。
我先安装了完整的ImageMagic-x64,然后才安装了扩展程序。后来我注意到安装程序在PATH的开头添加了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 对带有空格的路径无法解析。另外,如果在 PATH 上搞砸了,你可能需要重新启动电脑 - 在我的情况下,它可以立即从命令提示符中运行,但 IIS 有一个缓存(旧)路径。总之,我怀疑 PHP 扩展依赖于一些 DLL 文件(它作为 ZIP 的一部分提供),但同样的文件也是标准 ImageMagick 安装的一部分,只是两者并不完全相同 - 如果你加载错误的文件,则会出现有趣的事情...

1

对于64位WAMP(我的情况下是PHP 5.4.x,PHP 5.4.12线程安全),一个可行的组合如下:

ImageMagick-6.8.7-8-Q16-x64-dll.exe 或者可能是最新的Q16/x64/DLL版本,从这里下载:链接

php_imagick-svn20120508-5.4-VC9-x64从这里下载:http://www.mediafire.com/php-win64-extensions


难以置信,经过几个小时尝试各种组合后,终于成功了。然而,你发布链接的6.8.7-8-Q16-dll版本不再可用,但可以在这里找到。 - bg17aw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接