代码之家  ›  专栏  ›  技术社区  ›  Frederico Schardong

试图让imagick在Windows x64的PHP 5.4.3上运行

  •  6
  • Frederico Schardong  · 技术社区  · 12 年前

    我有Windows 7 64位,PHP 5.4.3通过WAMP 2.2和imagick安装( ImageMagick-6.8.3-9-Q16-x64-dll.exe ). 我试图使用来自许多来源的imagick的php的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 回复  |  直到 12 年前
        1
  •  4
  •   Community CDub    8 年前

    也许这可以帮助你: step-by-step instructions for installing IMAGEMAGICK on WAMP?

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

    “为了清楚起见,所有的PHP dll文件(librarires)都是32位的,所以如果你的系统是64位的,你仍然需要下载和操作32位的ImageMagick、Apache等。”

        2
  •  3
  •   Vladimir Strinski    10 年前

    我也经历了同样的痛苦。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_和_.dll -但我确实在ext文件夹中看到了!

    在PATH环境变量的末尾添加C:\Progra~2\PHP\EXT解决了这个问题(在确保没有其他DLL干扰之后)。

    注意:我使用了“C:\Program Files(x86)\php\ext”的8.3路径,以防万一,因为我看到php有时很挑剔,无法解析包含空格的路径。

    此外,在PATH出错后,您可能必须重新启动电脑——在我的情况下,它可以立即从命令提示符下工作,但IIS有一个缓存的(旧的)路径。

    总之:我怀疑PHP扩展依赖于一些DLL(它作为ZIP的一部分提供),但相同的DLL也是标准ImageMagick安装的一部分,只是两者并不完全相同-如果你碰巧加载了错误的DLL,有趣的事情就会发生。。。

        3
  •  1
  •   Glorfindel Doug L.    4 年前

    对于64位WAMP(在我的情况下是PHP 5.4.x,PHP 5.4.12线程安全),工作组合如下:

    图像魔法6.8.7-8-Q16-x64-dll.exe 或可能是最新的Q16/x64/DLL: Link

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