在Windows 7上使用XAMPP 1.8.3运行ImageMagick

20

我已经花了几个小时在本地主机上(运行在Windows 7上的XAMPP 1.8.3)尝试让ImageMagick工作。我已经检查并尝试了我能在这个网站和其他几十个网站中找到的每一个解决方案,但都无法解决问题。无论我尝试什么样的ImageMagick版本和imagick DLL组合,当我尝试启动Apache时,总是会出现某种“找不到dll”错误(具体消息基于我尝试的组合而异,但它总是某种缺少DLL的消息)。有人可以给我提供一个(XAMPP/ImageMagick/Imagick)的(较新的)可用组合吗?

3个回答

34

好的。我终于找到了一个可行的组合。经过许多试验和错误,我终于能够在我的电脑上使下面的组合工作。希望对于任何其他可能遇到困难的人也有用。

  • 操作系统:Windows 7 64位
  • PHP:5.5.6
  • XAMPP:1.8.3
    • 编译器:MSVC11
    • 架构:x86
  • ImageMagick:ImageMagick-6.7.7-5-Q16-windows-dll(可在这里找到)
  • Imagick DLL:来自http://www.peewit.fr/imagick/的PHP5.5.x版本

注意:一旦我尝试了这个,Apache就可以无任何错误消息启动。我没有必要重新启动计算机(只需重新启动Apache)。在我的情况下,我把ImageMagick安装在名称中没有空格的目录中(因为有些人建议这对某些安装可能存在问题)。在我的情况下,我将其安装到c:\xampp\imagemagick。

祝你好运!


也救了我的命。我花了几个小时试图让它工作,但是什么都没有,直到我按照你的步骤去做。 - xZero
非常高兴听到这很有帮助。这实际上是不必要的复杂。我浪费了好几天时间试图找到一个可行的配置。 - Chris Stocking
很遗憾,这个组合在xampp 1.8.3(与你的版本相同)、PHP版本5.5.1和Windows 7 32位上无法工作。:( 看来我得尝试其他版本了... - user2718671
这对我有用(尝试了大约3天不同的方法后),但我确实需要添加一个环境变量MAGICK_HOME,指向“C:\ImageMagick\modules\coders”(或安装路径中的相关位置)。在我这样做之前似乎不起作用。 - hessodreamy
至少,一个有效的答案。简洁明了。当你谈到Imagick DLL: PHP5.5.x时,你有两个选择:线程安全和非线程安全。第一个对我有效。 - cabreracanal
显示剩余3条评论

13

Imagick是一个PECL扩展,official windows.php.net网站有编译好的PECL扩展版本。

请从以下网址下载Imagick: http://windows.php.net/downloads/pecl/releases/imagick/

并从以下网址下载ImageMagick: http://windows.php.net/downloads/pecl/deps/

请注意,从一个网站下载Imagick,从另一个网站下载ImageMagick可能无法正常工作!这是因为当编译Imagick时,它使用了一些设置,这些设置根据编译所使用的ImageMagick版本而变化。

顺便说一下,Imagick扩展的维护者建议不要在Apache中运行它,而是通过像SupervisorD或cron这样的后台任务来运行它。这既是出于安全原因,也是为了提高性能。


这篇文章的作者救了我的一天。我遇到了很多问题,因为我从作者那里下载了分发版本,而不是从pecl deps下载。 - BlitZ

2
在尝试多个小时后,我无法在Windows 7(64位)上使它正常工作,因此决定查看其他系统以了解它们如何处理该问题。Mediawiki所做的是根本不使用ImageMagick/PHP扩展!他们直接调用ImageMagick convert.exe程序并使用结果(请参见mediawiki包中的includes/media/Bitmap.php)。
人们放弃PHP扩展并非没有原因,因为显然必须使用“正确”的不断变化的编译器进行编译,并至少与Apache和ImageMagick构建匹配。令人惊讶的是,这个问题已经存在五年之久,但仍未得到解决。
因此,我的“解决方案/答案”实际上并不是一个真正的解决方案,而是像Mediawiki一样以不同的方式调用ImageMagick以避免问题。

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