PHP 5.3.8
WAMP 2.2.21
ImageMagick 6.6.2 Q16
致命错误:无论如何都会发生“找不到”类。 无论我多少次......
我在WAMP启动时也遇到此错误
有趣的是php_imagick.dll通过WAMP任务栏显示在我的PHP扩展中
但不在我的localhost PHP-Loaded Extensions中:
有没有人对为什么会这样做有任何想法?还是有什么建议吗?
解决方案:我必须学习艰难的方法...... WAMP 2.2 x32 NOT x64,ImageMagick 6.6.4 Q16最大。
答案 0 :(得分:1)
您未加载php_imagick.dll
扩展程序。
首先检查文件是否并且可读。如果是,那么它没有加载,因为 DLL本身需要一些其他DLL; Windows通常不会显示此错误。您需要使用DEPENDS之类的工具来加载php_imagick.dll
并查看其中包含的未解析的外部内容。
您可能会发现某些函数是由库(例如libeay32.dll
)导入的,该库可能与您未加载的扩展相关联,或者位于PHP目录中但应该已复制到Windows中'SYSTEM目录,或者可能使用不同的VC运行时(例如MSVCR90.DLL
)。
例如,我发现样本PHP 5.3 php_imagick.dll
依赖于这两个DLL
CORE_RL_WAND_.DLL
CORE_RL_MAGICK_.DLL
并猜测,CORE_RL_MAGICK 本身取决于其他符号,这解释了这个人遇到的问题(他的解决方案可能比必要的更彻底,但是,嘿,无论有什么用 - 和可能也适合你,但请继续阅读)
ImageMagick - "CORE_RL_magick_.dll not found" or how to install RMagick on windows with ruby 1.9.2
使用DEPENDS再次查看CORE_RL_MAGICK,结果表明依赖于特定版本的Visual C ++运行时(对于某些版本的IM,也是QT),这与丑陋的蠕虫病毒联系在一起,称为“VC6对抗VC9”(例如http://www.websiteadministrator.com.au/articles/install_guides/installing_php533_pg2.html)。
现在,你应该做什么?它取决于。从字面上看,而不是盲目地重新安装,直到星星是正确的(再次:它可能工作。它经常!),我会在imagick
DLL上启动DEPENDS,然后在ImageMagick核心上启动DLL,依此类推,直到我追逐那些曲折的小依赖,同样的,Windows应该告诉你,但不是。
(这就是为什么它被称为“ DLL Hell ”)。