https://www.cnblogs.com/jinxiblog/p/8053008.html
最近的PHP项目中,需要用到切图和缩图的效果,在本地windows开发环境,安装过程遇到好多问题,在此与大家分享。
php官网里,一大群老外也看不懂这玩意怎么装,主要原因在于,php版本庞杂,还有x86 x64 nts ts,对应的imagick版本也不一定相同,imagick第一道关还算容易,总还是有办法装上,imagick对应的ImageMagick程序又不一定了,又出现庞杂的版本,即使官网给出的依赖版本也没有效果,同时也没有官方任何地方给出一个合理的安装方法,真是变态。从中文到英文,从php文档到百度、谷歌资料,各种版本,全是坑!
使用环境
安装步骤
根据环境下载合适的 imagick扩展 和 imagemagick程序
1.下载拓展
下载地址一: http://windows.php.net/downloads/pecl/releases/imagick/
下载地址二: https://pecl.php.net/package/imagick
要点: 注意对应php版本 ts还是nts x86还是x64
这里以phpinfo()为准
所以我应该下载imagick 3.4.3版本 PHP5.6 Non Thread Safe (NTS) x86 的拓展——php_imagick-3.4.3-5.6-nts-vc11-x86.zip
2. 安装拓展
- 解压上述文件后,将php_imagick.dll复制到php/ext目录,或者其他你的存放拓展的目录
- 修改php.ini 加上extension=php_imagick.dll,注意php可能有多个ini,以phpinfo为准
- 此时复制解压上述文件目录中其他dll到php目录,重启apache,此时phpinfo显示拓展安装成功,但是 ImageMagick number of supported formats为0,到这里成功安装了一半
注意,如果安装后还是找不到imagic扩展或者phpinfo()中不显示的话:
来源:https://newsn.net/say/php-imagick.html
启后,刷新phpinfo()
页面,发现:没有效果,加载失败!那么,究竟是为什么呢?
如果没有显示相关扩展信息,在运行imagemagick
相关代码的时候,就可能会碰到下面的错误信息输出:
Fatal error: Uncaught Error: Class 'Imagick' not found
特别配置【不同于其他扩展】
在php-imagick
扩展压缩包中,除了php_imagick.dll
外,还有其它一堆.dll
文件。【重点来了】,这些文件要放置在特殊位置,这个php_imagick.dll
才能最终加载成功。经过无数次实验,这个可以生效的位置是:
php
根目录下面,也就是php.exe
的同级目录下面。【推荐】- 系统目录,比如
system32
目录下面。 - 系统环境变量
path
下的自定义目录下面,注意一定需要【系统环境变量】,而不是用户环境变量。而且环境变量的生效,是需要读取和刷新的时机的,所以出错的概率比较大。
刷新phpinfo()
页面,就可以显示该扩展加载成功!
3 下载imagemagick程序
下载地址:http://windows.php.net/downloads/pecl/deps/
imagemagick还有官网下载,此处不鼓励从imagemagick官方下载,他们的网站上我并没有找到历史版本下载,安装失败的几率很大
下载与phpinfo提示一致的版本,此时需要注意 1.软件版本对应 2.vc11还是vc14 3.x86还是x64 都要以phpinfo为准,我的
所以我下载 ImageMagick-6.9.3-7
4 安装imagemagick程序
- 下载的文件解压后,将程序整体复制到无空格 无中文字符的目录中 E:\Program Files (x86)\
- 配置环境变量,在“此电脑”右键“属性”,以此点击“高级” “环境变量” ,在 “系统变量”中找到键为path的数据,双击path,选择“新建”,将刚刚放程序的目录“E:\Program Files (x86)\ImageMagick\bin”填入即可
- 将“E:\Program Files (x86)\ImageMagick\bin”目录中的所有的以“.DLL‘为后缀的文件放入php的根目录,应该有145个
重启计算机
标签:x86,imagic,phpinfo,扩展,imagick,版本,php,下载 From: https://www.cnblogs.com/andydao/p/17996816