先上图,如下是安装成功后的phpinfo()界面:
安装步骤:
1、先确定安装版本,比如我的的php : php7.0.12 x86 ts
那么就需要三方版本 要一致:imagick软件本身( 如x86 )、php本身( x86 ts (thread safe) )、php扩展php_imagick.dll (ts)
2、需要下载2个软件: imagick软件本身、php扩展php_imagick.dll扩展包:
imagick软件本身: http://imagemagick.org/script/binary-releases.php#windows
因为最新版本的 php_imagick.dll (最新版本3.4.3 2017.02.01)
只支持到 ImageMagick 6.9.3
所以,我更换为 ImageMagick 6.8.9-6 Q16 x86.exe (自行百度相关版本)
php扩展php_imagick.dll扩展包:http://pecl.php.net/package/imagick/
我选择的是: PHP 7.0 :7.0 Thread Safe (TS) x86
3、.安装imagick软件和配置
安装imagick软件本身,一直下一步即可;(最后一步要勾选上添加环境变量,否则安装好之后要自己将安装目录添加到系统环境变量中去)
安装php扩展插件:php_imagick.dll ,同其他php dll插件一样。
①从php扩展压缩包中将php_imagick.dll 拖到/php/ext 目录下,
②在php.ini开启插件 extension=php_imagick.dll ,
③从扩展压缩包中将多个 CORE_RL_*.dll 文件拖到 /php/ 目录下
4、重启Apache,查看 phpinfo() 中是否有 Imagick 项,如果有说明安装成功。
5、需要另外 新建一个系统环境变量名为MAGICK_HOME,值为E:你的imagick路径modulescoders, 这步主要用来定位imagemagick的module,很重要。( 否则支持的图片格式数量默认为0 ImageMagick number of supported formats: => 0 )
如果没有Imagick 项,请 使用 php扩展调试命令 来检查扩展中存在的问题, 并确保三方软件版本一致即可。
php扩展 调试命令:
在cmd运行: php --ri imagick
(1)如果报错是:“php_imagick.dll' - %1 不是有效的 Win32 应用程序” ,则说明版本不相符合。 需要检查 imagick软件本身( 如x86 )、php本身( x86 ts (thread safe) )、php扩展php_imagick.dll (ts) 三方版本 要一致。
(2) 如果报错是:“php.exe - 系统错误 ,无法启动此程序因为计算机丢失CORE_RL_wand_.dll ” , 说明你没有将 php_imagick.zip 扩展包中的“CORE_*.dll” 这些dll文件 放到 你的php.exe同级目录下。只需要拷贝 CORE_*.dll 到php目录就可以解决了。
(3) 如果php --ri imagick 显示的结果 ImageMagick number of supported formats: => 0 支持的图片格式数量为0,请看第5步需要新建一个环境变量。
(4)如果php代码执行调用时报错:“ NoDecodeDelegateForThisImageFormat ”,表明你的php_imagick.dll的版本 并不支持或并不匹配 ImageMagick软件版本,这时候 php --ri imagick 的结果也显示为: ImageMagick number of supported formats => 0 。需要更换ImageMagick软件版本。
以上内容大部分参考http://www.cnblogs.com/wangqishu/p/5609950.html
我的环境是wamp,参照以上步骤安装好之后发现,在cmd运行: php --ri imagick中可以看到imagick扩展,但是在phpinfo()下看不到imagick扩展,首先想到是phpinfo()中加载的php.ini文件和cmd命令加载的php.ini文件不是同一个,在phpinfo中查看php.ini文件路径是下面这个(在apache/bin目录下),而cmd命令加载的是php目录下php.ini文件
然后我将php目录下php.ini文件覆盖apacheapache2.4.9inphp.ini文件
但是此操作还是不能在phpinfo看到imagick扩展
最后一步,将php扩展压缩包里的 CORE 开头的 dll 文件要放到 Apache/bin 目录下
总结:通常开发环境下,按照分割线上的步骤是能安装好imagick扩展的,但是wamp集成环境比较特殊,需要apache/bin目录中php.ini文件和php目录中php.ini文件一样,另外要将php扩展压缩包里的 CORE 开头的 dll 文件要放到 Apache/bin 目录下