如何在 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.dll
到php.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 safe
或non thread safe
。然后单击here 将帮助您。
在 Windows 上:php -i|find "Thread"
在 Linux 上:php -i|grep Thread
或者您可以运行函数phpinfo()
并在网页上搜索"Thread"
。
您将看到Thread Safety enabled
或Thread 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)