windows7下 php5.4成功安装imageMagick 。
(phpinfo中显示不出来是因为:1.软件本身、php本身、php扩展三方版本要一致,2.需要把CORE_RL_*.dll多个文件放到/php/目录下面)
(作者:王奇疏 http://www.cnblogs.com/wangqishu/p/5609950.html )
楼主需要用php处理一些特别的图片事宜,所以安装了iMagick for php来编写程序。
先看一下,这是我在windwos7安装成功的 imageMagick for php 的phpinfo()截图:
和调用imagick插件 的 php程序执行成功 截图:
安装步骤:
1). 先确定你使用的php版本情况,比如王奇疏的pc是win7的php : php5.4 x86 ts
那么就需要三方版本 要一致:imagick软件本身( 如x86 )、php本身( x86 ts (thread safe) )、php扩展php_imagick.dll (ts) 。
2).在已经安装了php的情况下,需要下载2个软件: imagick软件本身、php扩展php_imagick.dll扩展包:
imagick软件本身: http://imagemagick.org/script/binary-releases.php#windows
楼主选择的是:ImageMagick-6.8.9-6-Q16-x86-dll.exe 百度盘下载 运行安装即可。
(
因为最新版本的 php_imagick.dll (最新版本3.4.2 2016.06.22)
只支持到 ImageMagick 6.8.9 (2014-05-08)
所以,楼主已更换为 ImageMagick 6.8.9-1 Q16 x86.exe 楼主提供了1个百度盘下载地址,x64或其它版本请自行搜索摸索。
(by 王奇疏) 。
这是exe二进制安装包,如果你是x64位的请自行搜索这个版本的下载,或者你换了别的版本的请自行摸索测试。 如果你下载的是stable便携包相当于绿色版,那么需要自己把 文件路径 放到系统的环境变量。
)
php扩展php_imagick.dll扩展包:http://pecl.php.net/package/imagick/
楼主选择的是:http://pecl.php.net/package/imagick/3.4.2/windows
PHP 5.4 :5.4 Thread Safe (TS) x86
3).安装软件和配置
安装imagick软件本身,一直下一步即可;
安装php扩展插件:php_imagick.dll ,同其他php dll插件一样。
①.从php扩展压缩包中将php_imagick.dll 拖到/php/ext 目录下,
②.在php.ini开启插件 extension=php_imagick.dll ,
③. 从扩展压缩包中将多个 CORE_RL_*.dll 文件拖到 /php/ 目录下(否则重启apache或者 命令行 php -ri imagick 调试时报错找不到*.dll )
4. 重启Apache,查看 phpinfo() 中是否有 Imagick 项,如果有说明安装成功。
5. 需要另外 新建一个系统环境变量名为MAGICK_HOME,值为E:\你的imagick路径\modules\coders, 这步主要用来定位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-3.3.0-5.4-ts-vc9-x86.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软件版本。