windows10 php7 imagick 拓展安装 ImageMagick

问题

php大神们做出这个imagick拓展,但是实在是做的变态,你在网上基本上随便搜都是不知道怎么装,php官网里,一大群老外也看不懂这玩意怎么装,主要原因在于,php版本庞杂,还有x86 x64 nts ts,对应的imagick版本也不一定相同,imagick第一道关还算容易,总还是有办法装上,imagick对应的ImageMagick程序又不一定了,又出现庞杂的版本,即使官网给出的依赖版本也没有效果,同时也没有官方任何地方给出一个合理的安装方法,真是变态
从中文到英文,从php文档到百度资料

使用环境

虽然抱怨php大神,但是我仍然相信这些恼人的问题是由于系统环境造成的,所以一下方法只对应这里所列的环境,其他环境可以做个参考

windows10 x64
php7.0.12 NTS
Apache/2.4.23 (Win32) OpenSSL/1.0.2j mod_fcgid/2.3.9
phpStudy2016

正确方法

1 下载拓展

下载地址一: http://windows.php.net/downloads/pecl/releases/imagick/
下载地址二: https://pecl.php.net/package/imagick
要点: 注意对应php版本 ts还是nts x86还是x64
这里以phpinfo()为准
我的是

PHP Version: 7.0.12
Architecture: x86
Thread Safety: disabled

所以应该下载imagick 3.4.3版本7.0 Non Thread Safe (NTS) x86 的拓展
当前3.4.3是最新的支持php7的拓展

2 安装拓展

  1. 解压上述文件后,将php_imagick.dll复制到php/ext目录,或者其他你的存放拓展的目录
  2. 修改php.ini 加上extension=php_imagick.dll,注意php可能有多个ini,以phpinfo为准
  3. 这一步只是做个实验,并没有实际价值,重启apache后Imagick并没有被安装,此时复制拓展目录其他dll到php目录(后续需要把他们删除掉,所以你可以不复制过来),重启apache,此时phpinfo显示拓展安装成功,这个成功还是假的,因为ImageMagick number of supported formats为0,说明啥格式也不支持,此时关注两个值 Imagick compiled with ImageMagick version 和 Imagick using ImageMagick library version,这是后续应该下载的imagemagick程序的版本,说明这个拓展就是用这个版本的imagemagick编译的,其他版本imagemagick是不一定支持的

3 下载imagemagick程序

下载地址:http://windows.php.net/downloads/pecl/deps/
imagemagick还有官网下载,此处不鼓励从imagemagick官方下载,他们的网站上我并没有找到历史版本下载,安装失败的几率很大
下载与上面第3步一致的版本,此时需要注意1.软件版本对应 2.vc11还是vc14 3.x86还是x64 都要以phpinfo为准,我的

Imagick using ImageMagick library version: ImageMagick 6.9.3-7 Q16 x86
Architecture: x86
PHP Extension Build: VC14

所以我下载 ImageMagick-6.9.3-7-vc14-x86.zip

4 安装imagemagick程序

  1. 这是一个命令行工具,解压后,将程序整体复制到无空格 无中文字符的目录中
  2. 在“此电脑”右键“属性”,以此点击“高级” “环境变量” ,在 “系统变量”中找到键为path的数据,双击path,选择“新建”,将刚刚放程序的目录填入即可
  3. 重启计算机
  4. 此时用控制台php执行php文件发现imagemagick可以用了,但是通过页面访问依然无法使用imagemagick

5 调整dll文件

  1. 复制第1大步里除去php_imagick.dll其他所有dll到apahce/bin目录,
  2. 把php目录里之前第2大步里复制的这些CORE_*_.dll 文件都删掉

6 成功测试

重启电脑或apache,发现控制台和页面访问时都可以使用imagick拓展了

部分参考

http://www.jianshu.com/p/c09fe7fc5385
http://php.net/manual/zh/imagick.setup.php
http://blog.csdn.net/cdnight/article/details/53462934
https://refreshless.com/blog/imagick-pecl-imagemagick-windows/
https://segmentfault.com/q/1010000009110461
https://stackoverflow.com/questions/3036847/how-to-install-imagick-imagemagick-on-windows-7
https://stackoverflow.com/questions/22547819/imagick-not-loading-images-with-nodecodedelegateforthisimageformat-error-mess

相关文章

此处评论已关闭