如何在 Windows 7 上安装 ImageMagick 以与 PHP 一起使用 (3)

Posted

技术标签:

【中文标题】如何在 Windows 7 上安装 ImageMagick 以与 PHP 一起使用 (3)【英文标题】:How to install ImageMagick to use with PHP on Windows 7 (3) 【发布时间】:2014-01-25 10:33:01 【问题描述】:

还有其他关于如何在 Windows 7 上安装 Imagick 的主题,但到目前为止对我没有帮助。 (也许最近的版本出现了问题)

我已按照以下步骤安装:

    下载并安装 ImageMagick

http://www.imagemagick.org/download/binaries/ImageMagick-6.8.8-1-Q16-x86-dll.exe

    下载 php_imagick.dll 并复制到扩展目录 (c:\xampp\php\ext)

http://www.peewit.fr/imagick/php55/vc11/x86/ts/php_imagick.dll

    编辑 php.ini 文件并添加新的扩展名 (c:\xampp\php\php.ini)

extension=php_imagick.dll

    保存ini文件并重启Apache(必要时重启Windows)

    启动 Apache 并运行测试

当我启动 Apache 时,我得到一个弹出框,显示:

程序无法启动,因为您的计算机中缺少 php5.dll。尝试重新安装程序以解决此问题。

紧随其后的是另一个:

PHP 启动:无法加载动态库 'C:\xampp\php\ext\php_imagick.dll' - 找不到指定的模块。

According to funtioneer我怀疑是某种编译错误。

现在我有 PHP 版本 5.5.6 (xampp 1.8.3) 和编译器 MSVC11,它与 php_imagick.dll 文件相同。

从源代码下载 ImageMagick 并自己编译是正确的方法吗? (以前从未在 Windows 中编译过)

【问题讨论】:

【参考方案1】:

在尝试了互联网上发布的几乎所有可能的解决方案后,这终于对我有用了:

环境:

OS: Windows Server 2008 R2 (64bit)

IIS: 7.5

PHP: 5.5.11 (x86)

PHP.ini: VC11, x86

Download 并安装 ImageMagick

ImageMagick-6.8.9-1-Q16-x86-dll.exe

Download 来自 Anatol 建议来源的相应 .zip(向 Anatol 致敬!)

ImageMagick-6.8.9-1-vc11-x86:

解压到一个临时文件夹并复制 Imagemagick 安装中“bin”文件夹的内容(c:\imagemagick) 在我的情况下覆盖文件。

下载.dll并放入php扩展文件夹 (我用过这个)

Imagick for PHP 5.5.x Non Thread Safe 来自: http://www.peewit.fr/imagick/

将扩展名添加到 php.ini 中:

extension=php_imagick.dll

保存 php.ini 并重启 IIS

最后Image Magick信息显示在一个phpinfo()中;打电话。

想解决这个需要从 3 个不同位置下载文件的问题真是不可思议。

希望对你有帮助。

【讨论】:

非常适合我:操作系统:Windows 8.1(64 位)PHP:5.5.11 我从 sunet.se 下载了 ImageMagick-6.8.9-1-Q16-x86-dll.exe,因为 ImageMagick 6.8.9.6 的最新稳定版本。显示this error @davey 从http://www.peewit.fr/imagick/得到它 成功了! Xampp Win7 x64 因为问题是关于 XAMPP,当然是 Apache 而不是 IIS,也许你应该修改你的答案。 使用 WAMP PHP 5.5 x86 TS 在 Win10 上为我工作【参考方案2】:

解决了!

在遇到同样的问题和谷歌搜索后,我找到了适用于 windows 的解决方案,而且它似乎也适用于每个版本。

在我的例子中,PHP 安装在 c:\php 并且我的扩展目录在 c:\php\ext。

    将“php_imagick*”复制到c:\php\ext 将“CORE_RL_*”、“FILTER_*”、“IM_MOD_*”复制到c:\php 将“extension=imagick”添加到 php.ini

重启 apache 就完成了。

【讨论】:

我可以确认它有效,但是从长远来看,将一个库中的文件与主 php 目录混合是一个坏主意【参考方案3】:

更新日期:21.08.2017

我使用 php 7 和 IIS(Apache 非常相似)使用 ImageMagick: Imagick 版本。 3.4.3

PHP 7 nts x86、Windows Server 2012 x64、IIS 8.5

1) 安装 VC++ 2015 https://www.microsoft.com/en-US/download/details.aspx?id=48145

2) 从https://pecl.php.net/package/imagick 获取 php_imagick.dll

3) 放入 php/ext/ 文件夹并添加extension=php_imagick.dllphp.ini

注意! 支持的最低版本 PHP >= 5.4.0 和 ImageMagick >= 6.5.3-10。

目前不支持 ImageMagick 7。

看phpinfo:

您必须安装 ImageMagick 6.9.3-7 Q16 x86 4) 安装ImageMagick 6.9.3-7 Q16 x86 dll 来自http://ftp.icm.edu.pl/packages/ImageMagick/binaries/ 不要取消选中“将变量添加到路径”。

5) 重启服务器

就是这样

【讨论】:

您不需要整个 VC++ 2013,您所需要的只是运行时库 from here 您还需要将此 extension=php_imagick.dll 添加到您的 php.ini 文件中。不需要重新启动,您只需重新启动 Apache。 是的,我的意思是只有图书馆并提供链接。我使用 IIS8。 但是提出问题的人使用 XAMPP,这意味着他们使用 Apache。【参考方案4】:

这是我为使其正常工作所做的工作 注意:真正让我感到困惑但没有真正解释的步骤是 php_imagick.dll 版本应该与您安装的 imagick 匹配

好的,我采取的步骤是 从下载 php imagick dll http://windows.php.net/downloads/pecl/releases/imagick/3.1.2/(我用的是php_imagick-3.1.2-5.5-ts-vc11-x86.zip)

zip 文件将包含许多 dll 记住这一点,我们将来可能需要它。 将 php_imagick.dll 提取到您的扩展文件夹中

把它放在扩展文件夹中

在 php.ini 添加 扩展 = php_imagick.dll

现在的问题是我们需要找出 php_imagick.dll 是为哪个版本的 imagick 编译的 打开命令提示符并输入 php -e -v 我这样做的方法是使用您之前下载的 zip,将其他 DLL 提取到您的 php 文件夹中,可能会弹出一条错误消息,说明有关缺少 dll 的信息。因此,从之前的 zip 文件夹中提取 DLL 到您的 PHP 文件夹中。 尝试再次运行 php -e -v ,它应该可以正常工作而没有错误消息。 如果是这样的话 重启阿帕奇。现在查看 phpinfo() 并转到 imagick 部分。它会说 ImageMagick 版本:我说 ImageMagick 6.8.6-8 这是他们网站上的旧版本。问题是 ImageMagick 支持的格式数量:可能会说为零。

转到here 并下载匹配的版本并安装(安装时确保选中添加到路径变量的复选框)

一旦完成安装停止 apache。从您之前放入的 php 文件夹中删除 DLLS 并再次启动 apache。查看 重新启动apache,它应该一切正常。

【讨论】:

我已经尝试了很长时间。对我来说最关键的部分是将额外的 DLL 文件复制到 php 文件夹中!【参考方案5】:

我没有使用最新版本,而是尝试从here 下载 ImageMagick-6.7.7-5-Q16-windows-dll。那一个实际上与来自http://www.peewit.fr/imagick/ 的php_imagick.dll(PHP 5.5.x 的Imagick)一起工作。

这不是最新版本,但它有效。 (即使不重新启动计算机)

【讨论】:

感谢旧版本的链接和降级建议。这对我来说绝对是个废话。以防万一其他人尝试这样做,我可以使用 ftp.sunset.se 链接中的 ImageMagick-6.7.0-10-Q16-windows-dll.exe 让一切正常工作。我在 Windows 7 上使用 Apache 和 PHP 5.3.x。不需要重新启动 Windows,但我确实重新启动了 Apache 它有效。我从peewit.fr/imagick 下载了 imagick dll,并记录了测试它的 ImageMagick 版本。然后我从ftp.sunet.se/pub/multimedia/graphics/ImageMagick/binaries下载了特定版本 我一直在寻找 v6.5.5.*-windows-dll 一段时间。普通网站似乎已将其删除。但是,我最终从谷歌代码中得到了一个。对于那些找不到他们的人,链接是:code.google.com/p/rimagebook/downloads/… 上帝保佑你@embe!!!我一天中大部分时间都在尝试在我的 Windows 7 机器上设置 imagick。当前版本现在是 6.9.0-8,以及 imagick 3.1.2、php 5.5/5.6。我尝试了几十个 tuts,但你终于为我工作了! 我可以确认这也适用于 Windows 10,请确保将您的 php 版本降级到 5.5.x【参考方案6】:

请参阅installing-imagick-php-7 以使用 php 7.0 + 在 Windows 上安装 imagick php 扩展。到目前为止,这是我找到的唯一真正的解决方案。它非常详细。

【讨论】:

我确认。这似乎是目前唯一的方法。其他解决方案并不完全有效。确保设置MAGICK_HOME并将相同的路径添加到PATH,否则你会得到Warning: PHP Startup: Unable to load dynamic library './ext/php_imagick.dll' - The specified module could not be found. in Unknown on line 0 注意:在 php_imagick.dll 文件可以使用 phpinfo() 识别库之前,我必须将 path\ImageMagick\bin 的内容移动到 path\ImageMagick 文件夹。【参考方案7】:

现在文档没有提到:在您的环境中设置 MAGICK_HOME 值。 ImageMagick 需要这个变量,所以它知道在哪里可以找到所有相关的编码器。

打开控制面板,搜索“PATH”。在结果中,选择“编辑系统环境变量”。选择“环境变量...”选项,并添加一个新的“系统变量”(下方列表)。如果您选择了不同的安装路径,请确保将 C:\img 替换为您自己的路径。

变量:MAGICK_HOME

值:C:\img\modules\coders

see more

【讨论】:

【参考方案8】:

按照以下步骤操作。

php 5.5 32bit ts+apache 2.4+windows 10 64bit+Imagick 6.9.3-5+php_imagick.dll ts

检查你的系统位是什么。

从以下位置选择一个php_imagick.dll 版本 http://windows.php.net/downloads/pecl/releases/imagick/

.zip文件中找到php_imagick.dll

如果你不知道如何选择。

在命令行窗口输入php -v获取php版本

运行以下代码显示您安装了哪种php,thread safenon thread safe。然后单击here 将帮助您。

在 Windows 上:php -i|find "Thread"

在 Linux 上:php -i|grep Thread

或者您可以运行函数phpinfo() 并在网页上搜索"Thread"

您将看到Thread Safety enabledThread Safety disabled

@embe 已经写出了其他步骤。

【讨论】:

【参考方案9】:

应该使用的 ImageMagic 分布来自这里 http://windows.php.net/downloads/pecl/deps/ 。 ImageMagic 二进制文件需要使用与 PHP 扩展相同的 CRT 构建。

【讨论】:

你怎么知道PHP扩展是哪个CRT?

以上是关于如何在 Windows 7 上安装 ImageMagick 以与 PHP 一起使用 (3)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 7 上安装 ImageMagick 以与 PHP 一起使用 (3)

如何在 Windows 7 机器上安装 gcc?

如何:在 XAMPP 上安装 Memcache (Windows 7/8/10)

如何在 Windows 上安装 IMDbPY?

如何在Mac上安装Windows7-VirtualBox篇

如何在 Windows 7 上安装 TeX Live 2018