在Windows上为PHP和Apache安装Imagick

时间:2014-11-28 17:39:05

标签: php windows imagick

到目前为止我采取的措施:

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

    • 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(来自here

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

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

    我已尝试过几乎所有关于在Windows上安装Imagick for PHP的编写和演练,但它们似乎都是为旧版本的PHP编写的。

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

7 个答案:

答案 0 :(得分:31)

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

编辑:此过程也适用于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 并在此答案时下载最新的DLL (3.3.0RC1) Imgur
  2. php_imagick.dll 提取至 D:\php5.6\ext
  3. 将所有 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. 删除 CORE_RL_*.dll 中之前提取的 D:\php5.6 文件(它们将通过ImageMagick路径加载 - 否则您的PHP安装可能会使用PECL dlls变得不稳定
  10. 重启Apache / PHP内置Web服务器
  11. 检查PHP信息以确保模块仍然正确安装,现在正在加载Imagick支持的格式Imgur
  12. 可选择下载并安装Ghostscript到 D:\php5.6\bin ,以便能够将PDF转换为http://sourceforge.net/projects/ghostscript/ 中的图像,并确保与您的安装架构相匹配
  13. 我不需要为Imagick添加MAGICK_HOME来使用PHP内置Web服务器或CGI,但使用mod_php的Apache可能需要它。确保运行PHP的用户具有执行convert的权限。这应该通过D:\php5.6\bin继承,但是如果您选择安装到C:\Program Files。由于权限受限,您可能会遇到问题。

    图像转换的替代方法

    如评论中所述,您也可以下载所需的ImageMagick版本依赖项,并将exe目录中的dllbin文件直接提取到 {{ 1}} 目录。 依赖关系可以在PECL网站http://windows.php.net/downloads/pecl/deps/

    上找到
      

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

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

    特别注意事项

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

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

    这会强制您的系统在D:\php5.6\bin;%SystemRoot%\system32;%SystemRoot%;...

    之前的D:\php5.6\bin内查找可执行文件

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

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

答案 1 :(得分:8)

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

  1. 安装this website提供的旧版ImageMagick(6.7.7-5 Q16)。
  2. 安装从this webpage下载的PECL Imagick DLL文件(php_imagick-3.1.2-5.6-ts-vc11-x86.zip),将php_imagick.dll文件放入PHP ext目录以及Apache CORE_RL_*_.dll目录中的bin文件。
  3. 将名为MAGICK_HOME的Environement变量添加到计算机,其值为[ImageMagick install dir]\modules\coders
  4. 重新启动apache并检查phpinfo( )
  5. 如果这对您不起作用,请尝试不同版本的ImageMagick二进制文件和不同版本的PECL库。

答案 2 :(得分:0)

另外一种解决方案适用于3种不同的Windows安装(2个Windows 7和1个Windows 8.1):

ImageMagick-6.7.9-10-Q16-windows.exe with

<强> XAMPP-win32-1.8.3-5-VC11-Installer.exe的

当然,您必须将php_imagick.dll 添加到php / ext文件夹,并将添加扩展名 php_imagick.dll添加到php.ini。 执行上述所有操作后,重新启动 apache,如果它抱怨缺少内容,请重新启动计算机。

答案 3 :(得分:0)

  1. 从中下载适当的扩展程序版本 http://windows.php.net/downloads/pecl/releases/imagick/我选了 3.1.2这是目前最新的非beta版
    • 将php_imagick.dll解压缩并复制到PHP ext文件夹
    • 将[PHP_IMAGICK] extension = php_imagick.dll添加到php.ini
    • 下载推荐的Imagick版本并安装自:http://imagemagick.org/script/binary-releases.php#windows(我 在安装过程中选择了C头和COM对象
    • 重启apache
    • 检查phibfo()for Imagick部分......就在那里!

答案 4 :(得分:0)

这是我解决的方式

我真的很难解决所有这些答案。回顾过去,我意识到其中大多数都是正确的,只是它们遗漏了一些非常重要的非常好细节。

1)。首先,在开始下载任何库或DLL之前,您要先从 php_info 开始,以找出这三个非常重要的参数。

运行PHP_Info并检查:

  
      
  1. 体系结构:x86或x64。您的计算机可能是x64,但是您的php在x86上运行,所以不要假设
  2.   
  3. 线程安全性:是或否。也很重要。
  4.   
  5. 您的PHP版本
  6.   

2)。https://windows.php.net/downloads/pecl/deps/下载ImageMagick。     我的计算机是x64,但是我的php正在运行x86,所以我下载了ImageMagick-7.0。- -vc * -x86.zip

3)。解压缩并将所有DLL从解压缩后的bin子文件夹复制到Apache bin目录。这是一堆CORE_RL_ .dll和IM_MOD_RL _ .dll以及一些其他DLL。就我而言,[zipdownload] / bin / *->复制到-> C:\ Xampp \ apache \ bin

4)。转到http://pecl.php.net/package/imagick。您可以选择zip链接或仅选择DLL链接。我更喜欢DLL链接。就我而言,我选择了最新版本3.4.3。然后带我到https://pecl.php.net/package/imagick/3.4.3/windows。 在这里,我们必须做出另一个仔细的选择

  1. 我的php版本是 PHP 5.6
  2. 启用了线程安全
  3. 正在运行的架构php是 x86
  4. 所以我选择了 5.6线程安全(TS)x86

5)。解压缩并将“ php_imagick.dll”复制到php ext 文件夹中。并将所有其他DLL文件添加到php文件夹

6)。。使用编辑器打开 php.ini 。搜索“ extension =“,并将此行 extension = php_imagick.dll 添加为其中之一。

7)。重新启动Xampp / Wamp或仅重新启动Apache并再次运行PHP_INFO。 Imagick应该显示。如果仍然看不到它,请参考此链接http://php.net/manual/en/imagick.setup.php#119084

奖金提示:您可能需要下载 Visual c ++ 14运行时。我从https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads链接中选择了最新版本。

答案 5 :(得分:0)

1,首先根据您的情况正确下载版本php_imagick程序包,我从以下位置使用php_imagick-3.4.3-7.1-ts-vc14-x64.zip。

https://windows.php.net/downloads/pecl/snaps/imagick/3.4.3/php_imagick-3.4.3-7.1-ts-vc14-x64.zip

2,然后将php_imagick-3.4.3-7.1-ts-vc14-x64.zip解压缩到C:/ php_imagick文件夹

3,接下来在php.ini中添加extension = C:/php_imagick/php_imagick.dll

4,现在将* .dll(php_imagick.dll除外)添加到您的apache虚拟主机文件中,例如:

# enable imagick start ===========
SetEnv MAGICK_HOME "C:/php_imagick" 

LoadFile "C:/php_imagick/CORE_RL_bzlib_.dll"
LoadFile "C:/php_imagick/CORE_RL_cairo_.dll"
LoadFile "C:/php_imagick/CORE_RL_exr_.dll"
LoadFile "C:/php_imagick/CORE_RL_glib_.dll"
LoadFile "C:/php_imagick/CORE_RL_jp2_.dll"
LoadFile "C:/php_imagick/CORE_RL_jpeg_.dll"
LoadFile "C:/php_imagick/CORE_RL_lcms_.dll"
LoadFile "C:/php_imagick/CORE_RL_librsvg_.dll"
LoadFile "C:/php_imagick/CORE_RL_libxml_.dll"
LoadFile "C:/php_imagick/CORE_RL_lqr_.dll"
LoadFile "C:/php_imagick/CORE_RL_magick_.dll"
LoadFile "C:/php_imagick/CORE_RL_Magick++_.dll"
LoadFile "C:/php_imagick/CORE_RL_openjpeg_.dll"
LoadFile "C:/php_imagick/CORE_RL_pango_.dll"
LoadFile "C:/php_imagick/CORE_RL_png_.dll"
LoadFile "C:/php_imagick/CORE_RL_tiff_.dll"
LoadFile "C:/php_imagick/CORE_RL_ttf_.dll"
LoadFile "C:/php_imagick/CORE_RL_wand_.dll"
LoadFile "C:/php_imagick/CORE_RL_webp_.dll"
LoadFile "C:/php_imagick/CORE_RL_zlib_.dll"
LoadFile "C:/php_imagick/FILTER_analyze_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_aai_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_art_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_avs_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_bgr_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_bmp_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_braille_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_cals_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_caption_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_cin_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_cip_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_clip_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_clipboard_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_cmyk_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_cut_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_dcm_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_dds_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_debug_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_dib_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_djvu_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_dng_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_dot_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_dps_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_dpx_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_emf_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_ept_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_exr_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_fax_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_fd_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_fits_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_fpx_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_gif_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_gradient_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_gray_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_hald_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_hdr_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_histogram_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_hrz_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_html_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_icon_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_info_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_inline_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_ipl_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_jbig_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_jnx_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_jp2_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_jpeg_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_json_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_label_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mac_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_magick_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_map_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mask_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mat_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_matte_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_meta_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_miff_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mono_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mpc_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mpeg_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mpr_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_msl_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mtv_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_mvg_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_null_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_otb_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_palm_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pango_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pattern_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pcd_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pcl_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pcx_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pdb_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pdf_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pes_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pict_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pix_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_plasma_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_png_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pnm_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_preview_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_ps_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_ps2_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_ps3_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_psd_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_pwp_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_raw_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_rgb_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_rgf_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_rla_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_rle_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_scr_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_screenshot_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_sct_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_sfw_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_sgi_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_sixel_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_stegano_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_sun_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_svg_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_tga_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_thumbnail_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_tiff_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_tile_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_tim_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_ttf_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_txt_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_uil_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_url_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_uyvy_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_vicar_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_vid_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_viff_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_vips_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_wbmp_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_webp_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_wmf_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_wpg_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_xbm_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_xc_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_xcf_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_xpm_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_xps_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_xtrn_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_ycbcr_.dll"
LoadFile "C:/php_imagick/IM_MOD_RL_yuv_.dll"
LoadFile "C:/php_imagick/ImageMagickObject.dll"

# enable imagick end ===========

5,最后一次重启apache

答案 6 :(得分:0)

如何为PHP 5.6.8安装ImageMagick模块。 X64。 TS(Theard Safe)版本。

常规信息

  1. 系统: Windows 10 x64
  2. 服务器Apache: 2.4
  3. PHP版本: 5.6.8

第1步


1。文件名:ImageMagick-6.7.7-5-Q16-windows-x64-dll.exe

2。下载:https://ftp.icm.edu.pl/packages/ImageMagick/binaries/ImageMagick-6.7.7-5-Q16-windows-x64-dll.exe

3。(不要触摸任何东西,只需单击下一步...下一步。) 安装后,转到命令提示符(CMD.exe)并输入:convert --version如果在输出中,您会看到像Version: ImageMagick 6.9.1 ....(有效!)

4。完成


第2步

  1. 文件名:php_imagick-3.2.0b1-5.6-ts-vc11-x64.zip

  2. 下载: https://windows.php.net/downloads/pecl/releases/imagick/3.2.0b1/php_imagick-3.2.0b1-5.6-ts-vc11-x64.zip

  3. 提取存档

  4. 重要!从提取的存档中复制所有前缀为 CORE_RL(...)。DLL 的文件到您的Apache BIN 文件夹中,例如: C:\ Apache2.4 \ bin ,然后在提取的归档文件中找到 php_imagick.dll 文件并将其复制到PHP 扩展名文件夹,例如: C:\ php5.6.8 \ ext

  5. 打开您的 PHP.INI 文件,找到第;extension=php_imagick.dll行,然后删除(;

  6. 保存

  7. 完成

如何检查它是否有效?

  1. 打开命令提示符(CMD.exe)
  2. 类型,例如:C:\php5.6.8\php.exe -m
  3. 如果您可以在输出列表中找到,请输入名称: Imagick ,何时有效!
  4. 或者您可以通过phpinfo();函数对其进行检查