本文概述
Imagick是本机PHP扩展, 用于使用ImageMagick API创建和修改图像。这个名称引起了一些混乱, 因为人们认为ImageMagick和Imagick是同一件事, 但事实并非如此。你可以在不使用Imagick的情况下使用ImageMagick, 但是需要同时安装Imagick和ImageMagick才能在PHP代码中运行它。
你可以使用PHP代码检查是否安装了Imagick扩展, 或者不使用:
<?php
if (!extension_loaded('imagick')){
echo 'imagick not installed';
}
或者只是实现Imagick的代码中的错误会告诉你…:
试图从全局名称空间中加载类” Imagick”。你是否忘记了”使用”声明?
找不到类别” Imagick”
在Windows XAMPP中, Imagick不是内置的, 因此由你决定其安装和实现。如果你以前已经搜索过如何在XAMPP中安装Imagick使其工作, 而你却做不到, 那你可能已经超出范围, 并且想自杀。
幸运的是, 在本文中, 你将找到Windows中Imagick for XAMPP的确定安装。
安装前注意事项
我们需要提到的是, Imagick的安装并不容易(可能会造成一些混乱), 如果你不认真地一步一步地进行操作, 则可能会在安装过程中出错。此外, 你需要了解有关PHP发行版的以下信息:
注意:根据你使用的XAMPP的版本, 这些值可能会有所不同。
名称 | 默认值 |
架构 | x86 (XAMPP Default) |
线程安全 | 启用TS:代表线程安全启用NTS:代表线程安全 |
编译器 | MSVC11(Visual C ++ 2012)一些Imagick版本使用其他版本进行编译, 例如VC9, VC11(在这种情况下), VC14 |
你可以使用PHP的phpinfo()函数在一个空脚本中执行此函数来获取这些值:
<?php
phpinfo();
一旦知道了值, 这些值将通过以下所有步骤指导文件, 以供你下载所需的体系结构。
注意:不要忘记也不用管理员权限执行所有设置。
1.下载并安装Windows版ImageMagick
在浏览器中导航到Imagick网站的”下载”区域, 然后滚动到Windows区域。 ImageMagick几乎可以在Windows的每个版本中运行(从Windows Server 2009, XP到Windows 10), 现在从该列表中下载具有X86架构和DLL版本的最新可用版本非常重要, 因为这就是XAMPP使用的架构(通常, 如果没有, 则为请参考PHPINFO并下载正确的版本, 例如ImageMagick- <版本> -Q16-x86-dll.exe):
下载可执行文件, 然后等待。到目前为止, 我们不需要为PHP进行任何配置, 只需继续安装Windows版Imagick, 别忘了选中将Imagick添加到PATH的选项:
设置完成后, 你可以在新的命令提示符下测试Imagick的执行情况(应在控制台中打印版本):
magick -version
2.下载Imagick for PHP
现在, 在此处浏览PECL网站上的Imagick软件包, 并从最新的可用版本中选择DLL版本(如果你下载了ImageMagick的旧版本, 然后下载接受你版本的版本):
然后将加载一个新窗口, 在此页面中滚动到DLL列表, 然后单击具有正确体系结构(XAMPP不是你的操作系统)和Thread Safe(如果在你的发行版中启用)的正确版本的PHP版本(请参阅phpinfo了解你的php发行版是否使用Thread Safe):
这将开始下载zip文件” php_imagick- <版本>-<线程安全或非>-<php-compiled-version>-<体系结构> .zip”。从此.zip文件中, 你只需提取php_imagick.dll文件。复制php_imagick.dll文件并粘贴到xampp安装路径(通常为C:\ xampp \ php \ ext)内的php / ext文件夹中:
然后, 通过添加以下行, 继续在php.ini文件中启用扩展名:
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
; Add the following line where the other extensions are loaded
extension=php_imagick.dll
现在已经加载了扩展名, 但是Imagick仍然无法使用, 因为如果你检查phpinfo文件, 它甚至都不会被识别为扩展名, 因为我们需要加载所有可以从下一步中检索到的方法和二进制文件。
3.下载所需的Imagick二进制文件
此时你可能会问自己, 真的吗? 3种不同的下载? Imagick的问题在于, 有许多来自不同来源的构建, 如果你没有下载并安装正确的构建, 则将无法正常工作或将其加载, 但是如果你在以下位置检查了Imagick扩展名(后来, 还没有) phpinfo, 你将看到:
ImageMagick支持的格式数:0
这就是为什么你需要按照上述步骤操作, 否则你将无法使Imagick正常工作。为了防止任何实现错误, 二进制文件必须来自同一源, 在本例中为Windows.php.net。要下载所需的二进制文件, 请在此处导航至PECL Deps并在列表中搜索Imagick:
下载与xampp架构匹配的版本, 并检查编译器版本。在这种情况下, 我们下载文件大小约为30MB的第三个选项(ImageMagick-6.9.3-7-vc11-x86.zip)。现在, 将这个zip的所有文件提取到你想要的任何位置的文件夹中, 在这种情况下, 我们将提取zip的内容到桌面的一个文件夹中。
提取文件的内容后, 打开bin文件夹并复制将大约有146个文件(带有前缀CORE_ *和IM_MOD_ *)的所有.dll文件(ImageMagickObject.dll除外), 然后将复制的文件粘贴到apache中。 / bin xampp文件夹(通常为C:\ xampp \ apache \ bin)。
现在启动apache服务(如果已经运行, 请重新启动它), 然后再次转到phpinfo。现在你应该看到imagick已作为扩展加载:
经过数小时的苦难之后, 你终于可以在Windows中将Imagick与PHP一起用于XAMPP。
如果控制台错误
如果在实施后仍然每次使用PHP时(至少在控制台中)仍然收到以下消息错误:
PHP警告:PHP启动:无法加载动态库’C:\ xampp \ php \ ext \ php_imagick.dll’-找不到指定的模块。
你需要将Apache的bin目录(C:\ xampp \ apache \ bin)添加到Windows的PATH环境变量中, 此问题将得到解决。
编码愉快!
评论前必须登录!
注册