在Windows上安装Imagick for PHP和Apache

我采取的步骤迄今为止:

  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的脚本时, Fatal error: Class 'Imagick' not found错误。

当前版本:

  • 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)
  • Imagick 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编写的。

有人可以帮我得到这个安装和运行? 这似乎只是缺less一个简单的步骤,我似乎无法弄清楚。 如果您需要更多信息,请询问。 我会尽可能地帮你。

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

编辑:这个程序也适用于Windows 10专业版。

我无法得到Imagick使用较早版本的ImageMagick来处理PHP,就像在公认的答案中一样,很难找到具有所需确切安全二进制文件的镜像(被接受的答案中的镜像中的二进制文件以不同于列出的版本下载) 。

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

我终于完成了以下工作:

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

我不需要为Imagick添加MAGICK_HOME来使用PHP内置Web服务器,但可能需要Apache。 其他注意事项是确保运行PHP的用户有权执行convert 这应该通过D:\php5.6\bin继承,但是如果您选择安装到C:\Program Files 由于权限有限,您可能会遇到问题。


图像转换的替代方法

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

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


特别注意事项

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

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

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

D:\php5.6\bin\convert.exe替换为安装ImageMagick的路径或convert.exe所在的路径

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

我终于搞定了,这是我必须做的:(参考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库。

另一种解决方案,在3个不同的Windows安装(2 Windows 7和1 Windows 8.1)工作是结合:

ImageMagick-6.7.9-10-Q16-windows.exe

xampp-win32-1.8.3-5-VC11-installer.exe

当然,你将不得不将php_imagick.dll添加到php / ext文件夹中, 并将 php_imagick.dll 扩展名添加到php.ini中。 完成上述所有操作后重新启动 apache,如果它抱怨丢失的东西,请重新启动计算机。

  1. http://windows.php.net/downloads/pecl/releases/imagick/下载适当的扩展版本我选择了3.1.2这是最新的非测试版
    • 解压并将php_imagick.dll复制到PHP的ext文件夹
    • 将[PHP_IMAGICK]扩展名= php_imagick.dll添加到php.ini
    • 下载推荐的Imagick版本并从以下网址安装: http ://imagemagick.org/script/binary-releases.php#windows(我在安装过程中选择了C头文件和COM对象)
    • 重新启动Apache
    • 检查Imapin的部分phpinfo()…它是!