为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Windows服务器上的IIS服务器上安装ImageMagick php扩展以供使用

如何在Windows服务器上的IIS服务器上安装ImageMagick php扩展以供使用

PHP
千巷猫影 2021-05-11 17:20:52
我有一个Windows Web服务器2012r2并希望在其上安装ImageMagick的PHP扩展,但一切 我已经 试过以下未能得到它的phpinfo中显示()。我如何才能运行imagemagick?我找不到IIS的有效安装步骤。
查看完整描述

2 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

最终,我最终写了一个博客文章,该文章PhilipD删除的帖子重新发布,该帖子以错误的格式发布且未得到更正。所以问题被删除了。

我在这里重新发布PhilipD的答案,这样可以使遇到相同问题的人更容易找到它,因为花了半天的时间才找到有效的博客文章。这些步骤详细介绍了32位安装。我为我的64位php执行了64位安装。


该服务器位于Windows Server 2012R2(64位)服务器上,使用IIS作为Web服务器应用程序。但是,我安装了所有与ImageMagick相关的软件的32位版本,因为Web服务器应用程序(IIS)是32位的。以下显示了截至2017年10月的最新/最新版本。

1.下载ImageMagick安装程序

2.下载用于ImageMagick的php模块

3.下载PHP的依赖包,以加载/使用ImageMagick

4.取消阻止每个下载的文件

根据下载方式的不同,这可能有必要,也可能没有必要,但是如果需要,应始终检查并“取消阻止”下载的文件。

  • 右键单击每个文件,然后从弹出菜单中选择“属性”

  • 如果属性对话框显示文本“此文件来自另一台计算机,可能被阻止以帮助保护此计算机”

    • 点击“取消阻止”按钮

    • 单击确定。

如果您不“取消阻止”下载的文件,尤其是ZIP文件,则仍可以将已安装或复制的单个文件标记为“阻止”,这有时会在运行软件时引起一些奇怪的问题。

5.安装Imagick应用程序

  • 运行ImageMagick-7.0.7-8-Q16-x86-dll.exe进行安装

  • 接受许可协议

  • 在安装过程中的每个屏幕上接受默认设置。

安装完成后,要测试安装是否成功,请打开命令提示符并运行以下两个命令:

magick wizard: wizard.jpg
magick wizard.jpg win:

这将显示一个“ IMDisplay”窗口,该窗口显示在画架上创建蒙娜丽莎肖像的向导的素描/图像。

6.安装依赖项

  • 解压缩您在步骤3中下载的文件。

  • 进入bin目录

  • IM_MOD_RL_*.dll文件(125个文件)复制到ImageMagick的已安装版本的文件夹中,例如C:\Program Files (x86)\ImageMagick-7.0.7-Q16

  • 返回到bin目录

  • CORE_RL_*.dll文件(20个文件)复制到ImageMagick的已安装版本的文件夹中,例如C:\Program Files (x86)\ImageMagick-7.0.7-Q16* *在提示您要覆盖/重命名的情况下,选择“覆盖”

    • 请注意,这将破坏Imagick的命令版本。magick:错误的JPEG库版本:库为80,呼叫者期望为62

7.安装Imagick php扩展dll

  • 解压在步骤2中下载的文件。

  • 将文件复制php_imagick.dll到服务器上已安装版本的PHP的“ ext”文件夹中,例如C:\php\7.1\ext

不要复制CORE_RL_ *文件
在Web上的某些文章中,您将看到也从该工具包复制CORE_RL_ *文件以替换ImageMagick文件夹中的文件的说明,但这是不正确的。在步骤6中复制了这些文件的适当版本。

8.修改PHP.ini

  • 编辑PHP软件文件夹中的php.ini文件,例如“ C:\ PHP \ 7.1 \ php.ini”

  • 将以下行添加到包含其他扩展名的部分:

       extension=php_imagick.dll

9.重新启动服务器。

重新启动IIS似乎还不够,您需要重新启动整个计算机。这可能与IIS无法识别Imagick输入的PATH条目有关。

10.测试PHPINFO

  • 在Web根目录中创建一个PHP文件,其中包含以下内容:


  • 在网络浏览器中访问此文件,

  • 搜索现在应该存在于PHPINFO输出中的“ Imagick”部分。

它应如下所示:

imagick imagick模块:启用了imagick模块版本3.4.3
imagick类Imagick,ImagickDraw,ImagickPixel,ImagickPixelIterator,ImagickKernel
Imagick使用ImageMagick版本ImageMagick编译的版本6.9.3-7 Q16 x86 2016-03-27 http://www.imagemagick.org
Imagick使用ImageMagick库版本ImageMagick 6.9.3-7 Q16 x86 2016-03-27 http://www.imagemagick.org
ImageMagick版权所有(C)1999-2015 ImageMagick Studio LLC
ImageMagick发布日期2016-03-27
ImageMagick支持的数量格式:216
ImageMagick支持的格式3FR,AAI,AI,ART,ARW,AVI,AVS,BGR,BGRA,BGRO,BIE,BMP,BMP2,BMP3,BRF,CAL,CALS,CANVAS,CAPTION,CIN,CIP,CLIP,CLIPBOARD,CMYK ,CMYKA,CR2,CRW,CUR,剪切,数据,DCM,DCR,DCX,DDS,DFONT,DJVU,DNG,DOT,DPS,DPX,DXT1,DXT5,EMF,EPDF,EPI,EPS,EPS2,EPS3,EPSF ,EPSI,EPT,EPT2,EPT3,ERF,EXR,传真,FITS,FPX,分形,FTS,G3,GIF,GIF87,梯度,灰色,GROUP4,GV,H,HALD,HDR,直方图,HRZ,HTM,HTML ,ICB,ICO,ICON,IIQ,INFO,INLINE,IPL,ISOBRL,ISOBRL6,J2C,J2K,JBG,JBIG,JNX,JP2,JPC,JPM,JPT,JSON,K25,KDC,LABEL,M2V,M4V,MAC ,MAGICK,MAP,MASK,MAT,MATTE,MEF,MIFF,MKV,MONO,MOV,MP4,MPC,MPEG,MPG,MRW,MSL,MTV,MVG,NEF,NRW,NULL,ORF,OTB,OTF,PAL ,PALM,PAM,PATTERN,PBM,PCD,PCDS,PCL,PCT,PCX,PDB,PDF,PDFA,PEF,PES,PFA,PFB,PFM,PGM,PICON,PICT,PIX,PLASMA,PNM,PPM,预览,PS,PS2,PS3,PSB,PSD,PTIF,PWP,径向梯度,RAF,RAS,RAW,RGB,RGBA,RGBO,RGF,RLA,RLE,RMF,RW2,SCR,SCREENSHOT,SCT, SFW,SGI,SHTML,SIX,SIXEL,稀疏颜色,SR2,SRF,STEGANO,SUN,TEXT,TGA,THUMBNAIL,TIFF,TIFF64,TILE,TIM,TTC,TTF,TXT,UBT,UBRL6,UIL,UYVY, VDA,VICAR,VID,VIFF,VIPS,VST,WBMP,WEBP,WMF,WMV,WPG,X3F,XBM,XC,XCF,XPM,XPS,XV,YCbCr,YCbCrA,YUV

重要说明:
如果“受支持的格式”部分未显示任何格式,或仅显示了少量格式,则最可能的原因是您错过了将一个或多个IM_MOD_RL_ *或CORE_RL_ * DLL文件复制到ImageMagick文件夹中的操作,或者您从“ php_magick”工具包中复制了它们。

11.在PHP中使用ImageMagick测试图像生成

在Web根目录中创建一个PHP文件,其中包含以下内容(我从“验证ImageMagick安装”此项中的一项输入中复制了该文件):

<?php

error_reporting(E_ALL); 

ini_set( 'display_errors','1');

/* Create a new imagick object */

$im = new Imagick();

/* Create new image. This will be used as fill pattern */

$im->newPseudoImage(50, 50, "gradient:red-black");

/* Create imagickdraw object */

$draw = new ImagickDraw();

/* Start a new pattern called "gradient" */

$draw->pushPattern('gradient', 0, 0, 50, 50);

/* Composite the gradient on the pattern */

$draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);

/* Close the pattern */

$draw->popPattern();

/* Use the pattern called "gradient" as the fill */

$draw->setFillPatternURL('#gradient');

/* Set font size to 52 */

$draw->setFontSize(52);

/* Annotate some text */

$draw->annotation(20, 50, "Hello World!");

/* Create a new canvas object and a white image */

$canvas = new Imagick();

$canvas->newImage(350, 70, "white");

/* Draw the ImagickDraw on to the canvas */

$canvas->drawImage($draw);

/* 1px black border around the image */

$canvas->borderImage('black', 1, 1);

/* Set the format to PNG */

$canvas->setImageFormat('png');

/* Output the image */

header("Content-Type: image/png");

echo $canvas;

?>

在浏览器中运行此PHP文件。它应该显示一个包含文本“ Hello World!”的图像。

//img1.sycdn.imooc.com//60b0487e00019e3605460270.jpg

12.检查错误

检查php-errors.log文件是否有任何错误。
您可以在php.ini文件中找到php-errors.log文件的定义位置。检查此文件中是否有与ImageMagick安装相关的最新错误。

PDF文件需要Ghostscript
安装并完成上述所有操作后,ImageMagick可以在PHP中用于转换图像,但不能用于将PDF文件转换为图像。对于最后一步,似乎也有必要从https://www.ghostscript.com/download/gsdnld.html安装Ghostscript,并且只有在我安装了64位版本的Ghostscript的情况下,它才能正常工作(即使一切否则我安装的是32位版本)。仅需安装Ghostscript。无需更改php.ini或任何其他配置。


查看完整回答
反对 回复 2021-05-28
  • 2 回答
  • 0 关注
  • 291 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信