在Windows上为PHP和Apache安装Imagick

Ben*_*jam 8 php windows imagick

到目前为止我采取的步骤:

  1. 我在Win7机器上安装了Imagick,它通过命令行安装并正常运行.
  2. 我已将这里提供的php_imagick-3.1.2-5.6-ts-vc11-x86.zip的内容解压缩到我的\ PHP\ext目录中.
  3. 在php.ini中启用了imagick.dll
  4. 重新启动...
  5. 启动Apache时没有错误.
  6. Fatal error: Class 'Imagick' not found当我尝试运行使用Imagick的脚本时,我仍然收到错误.

当前版本:

  • Windows 7 x64
  • Apache 2.4.10 x86 VC11(来自Apachelounge)
  • PHP 5.6.3 x86 VC11 TS(来自windows.php.net)
  • ImageMagick 6.9.0-0 Q16 x86(来自imagemagick.org)
  • 想象DLL php_imagick-3.1.2-5.6-ts-vc11-x86.zip(从这里)

我运行的是旧版本的PHP,并且Imagick正常工作,然后我更新了PHP(以及Imagick DLL及其),现在我似乎无法让它工作.

phpinfo( ),我没有看到Imagick在那里列出,所以它似乎根本没有加载模块.这很奇怪,因为我在启动Apache时没有遇到任何错误.

我已经尝试过在Windows上安装Imagick for PHP的每一篇文章和演练,但它们似乎都是为旧版本的PHP编写的.

有人可以帮我安装并运行吗?看起来它只是缺少一个我似乎无法弄清楚的简单步骤.如果您需要更多信息,请询问.我会尽力帮助你.

fyr*_*rye 32

php 5.6 NTS x64在我的开发系统上安装了Windows 8.1专业版.

编辑:此过程也适用于Windows 10专业版.

我无法使用较旧版本的ImageMagick使用Imagick使用PHP,因为在接受的答案中很难找到需要确切安全二进制文件的镜像(在接受的答案中镜像上的二进制文件下载为不同于列出的版本) .

在下面的所有步骤中,请确保将PHP体系结构(x86/x64和NTS/TS)与二进制体系结构相匹配.如果您使用的是PHP x86 - 请使用x86(或32位)版本替换x64版本的下载.这同样适用于PHP的线程安全(TS)和非线程安全(NTS)版本.

我终于通过执行以下操作完成了所有工作:

  1. 导航到https://pecl.php.net/package/imagick(3.3.0RC1)在此答案时下载最新的DLL . Imgur
  2. 提取php_imagick.dllD:\php5.6\ext
  3. 将所有CORE_RL_*.dll文件解压缩到D:\php5.6- 确保D:\php5.6也添加到PATH系统环境变量中
  4. 添加extension = php_imagick.dllD:\php5.6\php.ini
  5. 重新启动Apache/PHP内置Web服务器
  6. 检查PHP Info以确保模块安装正确 Imgur 请注意突出显示的ImageMagick版本 和缺少支持的格式(ImageMagick 6.9.1-2 Q16 x64)
  7. D:\php5.6\binhttp://www.imagemagick.org/script/binary-releases.php下载并安装匹配版本的ImageMagick - 确保Add Path to Environment Variables选中该选项或手动添加Imgur.
  8. 加载命令提示符(以管理员身份运行,强制刷新系统路径变量)并确保convert --version显示正确的版本Imgur
  9. 删除以前提取的CORE_RL_*.dll文件(它们将通过ImageMagick路径加载 - 否则您的PHP安装可能会因PECL dll而变得不稳定)D:\php5.6
  10. 重新启动Apache/PHP内置Web服务器
  11. 检查PHP Info以确保模块仍然正确安装,现在正在加载Imagick支持的格式 Imgur
  12. (可选)下载并安装Ghostscript以便D:\php5.6\bin能够将PDF转换为来自http://sourceforge.net/projects/ghostscript/的 图像,并确保与您的安装架构相匹配

我不需要添加MAGICK_HOMEImagick来使用PHP内置Web服务器或CGI,但可能需要Apache使用mod_php.确保运行PHP的用户具有执行权限convert.这应该是继承的,D:\php5.6\bin但是如果您选择安装到C:\Program Files.由于权限受限,您可能会遇到问题.


替代图像转换

如注释中所述,您也可以下载所需的ImageMagick版本依赖项,并将目录中的exedll文件bin直接解压缩到您的D:\php5.6目录中.依赖关系可以在PECL网站上找到http://windows.php.net/downloads/pecl/deps/

使用PECL依赖项无需从供应商的网站直接下载和运行匹配的ImageMagick版本安装程序.

使用PECL依赖项方法时,使用GhostScript进行PDF转换所需的排除文件存在问题.


特别注意事项

请务必重新排列PATH系统环境变量,以便%SystemRoot%\system32\convert.exe不会覆盖D:\php5.6\bin\convert.exe.

通过将您的PHP路径添加到system32的左侧,如下所示:PATH:D:\php5.6\bin;%SystemRoot%\system32;%SystemRoot%;...

这将强制您的系统在D:\php5.6\bin之前查找可执行文件%SystemRoot%\system32

更换D:\php5.6\bin\convert.exe用路径到安装的ImageMagick或路径到convert.exe位于

https://technet.microsoft.com/en-us/library/cc723564.aspx#XSLTsection127121120120

  • 请编辑你的帖子.现在我安装了PHP7.1,并按照步骤操作.什么是有趣的,之前我很紧张,ftp.sun.net不再可用.Imagick开发人员不存储以前的版本.我问过他们,他们为什么不使用git,或者其他东西......无论如何,在下载页面上:ImageMagick-7.0.4-4-Q16-x64-dll.exe,并没有任何6.xx-x什么的我需要.在这里您可以找到以前的版本:http://ftp.icm.edu.pl/packages/ImageMagick/binaries/ (3认同)

Ben*_*jam 8

我终于开始工作,这就是我必须做的事情:(参考http://refreshless.com/blog/imagick-pecl-imagemagick-windows/)

  1. 安装本网站提供的旧版ImageMagick(6.7.7-5 Q16).
  2. 安装从此网页下载的PECL Imagick DLL文件(php_imagick-3.1.2-5.6-ts-vc11-x86.zip),将php_imagick.dll文件放在PHP ext目录中,将CORE_RL_*_.dll文件放在Apache bin目录中.
  3. 添加一个调用MAGICK_HOME到机器的Environement变量,其值为[ImageMagick install dir]\modules\coders.
  4. 重启apache并检查phpinfo( ).

如果这对您不起作用,请尝试不同版本的ImageMagick二进制文件和不同版本的PECL库.