致命错误:未找到“Imagick”类

时间:2012-10-24 10:06:41

标签: php imagemagick wamp

PHP 5.3.8

WAMP 2.2.21

ImageMagick 6.6.2 Q16


致命错误:无论如何都会发生“找不到”类。 无论我多少次......

  1. 安装/重新安装不同版本的ImageMagick
  2. 尝试各种VC9版本的php_imagick.dll到'wamp \ bin \ php \ php5.3.8 \ ext \'
  3. 更新了我的php.ini以包含'extension = php_imagick.dll'
  4. 重启了我的电脑和WAMP ......我无法计算O_o
  5. 多少次

    我在WAMP启动时也遇到此错误

    enter image description here


    有趣的是php_imagick.dll通过WAMP任务栏显示在我的PHP扩展中

    enter image description here

    但不在我的localhost PHP-Loaded Extensions中:

    localhost Loaded Extensions


    有没有人对为什么会这样做有任何想法?还是有什么建议吗?


    解决方案:我必须学习艰难的方法...... WAMP 2.2 x32 NOT x64,ImageMagick 6.6.4 Q16最大。

1 个答案:

答案 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 ”)。