Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 致命错误:类';Imagick';找不到_Php_Imagemagick_Wamp - Fatal编程技术网

Php 致命错误:类';Imagick';找不到

Php 致命错误:类';Imagick';找不到,php,imagemagick,wamp,Php,Imagemagick,Wamp,PHP 5.3.8 WAMP 2.2.21 ImageMagick 6.6.2 Q16 致命错误:未找到类“Imagick”无论发生什么情况都会发生。 不管我有多少次 安装/重新安装不同版本的ImageMagick 尝试将php_imagick.dll的各种VC9版本转换为“wamp\bin\php\php5.3.8\ext” 已更新我的php.ini以包含“extension=php\u imagick.dll” 已重新启动我的电脑和WAMP。。。我数不清有多少次了 我在WAMP启动时也遇到

PHP 5.3.8

WAMP 2.2.21

ImageMagick 6.6.2 Q16


致命错误:未找到类“Imagick”无论发生什么情况都会发生。 不管我有多少次

  • 安装/重新安装不同版本的ImageMagick
  • 尝试将php_imagick.dll的各种VC9版本转换为“wamp\bin\php\php5.3.8\ext”
  • 已更新我的php.ini以包含“extension=php\u imagick.dll”
  • 已重新启动我的电脑和WAMP。。。我数不清有多少次了
  • 我在WAMP启动时也遇到了这个错误


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

    但不是在本地主机PHP加载的扩展中:


    有人知道为什么会这样吗?或者有什么建议



    解决方案:我必须以艰苦的方式学习。。。WAMP 2.2 x32不是x64,ImageMagick 6.6.4 Q16最大值。

    您没有加载
    php_imagick.dll
    扩展名

    首先检查文件是否存在并且可读。如果是,则不会加载,因为DLL本身需要其他DLL;Windows通常不会显示此错误。您将需要一些工具,例如加载
    php\u imagick.dll
    ,并查看它包含哪些未解析的外部

    您可能会发现某些函数是由库导入的(例如
    libeay32.dll
    ),该库可能与您未加载的扩展相关,或者位于PHP目录中,但应该复制到Windows的系统目录中,或者可能使用不同的VC运行时(例如
    MSVCR90.dll

    例如,我发现一个示例PHP5.3
    PHP_imagick.dll
    依赖于这两个dll

    CORE_RL_WAND_.DLL
    CORE_RL_MAGICK_.DLL
    
    猜猜看,CORE_RL_MAGICK本身取决于其他符号,这解释了这家伙所经历的问题(他的解决方案可能比必要的更彻底,但是,嘿,任何可行的方法——它可能也适用于你,但请继续阅读)

    重新查看CIEEL RLMGIMAK,依赖于对VisualC++运行时(和某些版本的IM)的特定版本的依赖,这与“VC6对VC9”(例如,VC6)的丑陋的WORK相联系。 现在,你应该做什么?视情况而定。字面上因为我不会盲目地随机重新安装,直到星星正确为止(再说一遍:它可能会工作。它经常会这样!),我会依靠

    imagick
    DLL,然后是ImageMagick核心DLL,等等,直到我找到了错综复杂的小依赖项,所有这些都是Windows应该告诉你的,但没有告诉你的


    (这就是为什么它被称为“DLL地狱”)。

    在这台机器上可以找到多少php.ini文件?@Cups Hmmm。。我没有意识到我有两个。我将更新第二个php.ini并报告…注意,其中一个可能是CLI php ini文件,因此编辑该文件可能会产生意外的后果。让PHP向您输出它使用的PHP ini文件的路径:检查phpinfo()在网页上的输出(在localhost或其他任何地方)。此类错误的常见问题是,imagick的一个依赖项丢失(它是否有?不知道),或者imagick和/或其中一个依赖项与您的PHP不兼容(例如,32对64位编译)。@Terry:我可以告诉你这一点(它可以做更多的事情来帮助调试DLL地狱!)。加载DLL并滚动到模块列表的底部;加载的DLL将在最后一行。看看“CPU”列。php_imagick.DLL在那里并且可读,我甚至仔细检查过;)我很确定它不需要任何其他的.DLL(s)运行。我可能错了,但我已经阅读了所有的教程,阅读了一个又一个论坛条目,除了我的php extensions文件夹之外,从来没有提到过任何其他的.dll或将php_imagick.dll放在任何其他地方……这可能是我得到的最有用的答案。有史以来。@Iserni感谢您的帮助!ps。这是我的第一次在做这种事情的时候,“DLL地狱”是一种轻描淡写的说法。不客气。你可能还想阅读维基百科上的“DLL地狱”条目,或者软件讨论的Joel()。