首页 > 编程语言 >php 安装imagic扩展及服务

php 安装imagic扩展及服务

时间:2024-01-30 12:00:37浏览次数:33  
标签:x86 imagic phpinfo 扩展 imagick 版本 php 下载

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. 安装拓展

  1. 解压上述文件后,将php_imagick.dll复制到php/ext目录,或者其他你的存放拓展的目录
  2. 修改php.ini 加上extension=php_imagick.dll,注意php可能有多个ini,以phpinfo为准
  3. 此时复制解压上述文件目录中其他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()页面,就可以显示该扩展加载成功!

苏南大叔:windows环境,php如何正确安装并配置imagick扩展? - phpinfo-imagick

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程序

  1. 下载的文件解压后,将程序整体复制到无空格 无中文字符的目录中 E:\Program Files (x86)\
  2. 配置环境变量,在“此电脑”右键“属性”,以此点击“高级” “环境变量” ,在 “系统变量”中找到键为path的数据,双击path,选择“新建”,将刚刚放程序的目录“E:\Program Files (x86)\ImageMagick\bin”填入即可
  3. 将“E:\Program Files (x86)\ImageMagick\bin”目录中的所有的以“.DLL‘为后缀的文件放入php的根目录,应该有145个

 

重启计算机

标签:x86,imagic,phpinfo,扩展,imagick,版本,php,下载
From: https://www.cnblogs.com/andydao/p/17996816

相关文章

  • windows下为php安装event扩展,失败原因,最终成功
    PHP:在Windows上安装PHP扩展-ManualPECL::Package::event(php.net)windows安装phpevent扩展问题_windowsenevt扩展步骤-CSDN博客 最开始不懂,以为还要安装libevent--不是,只要event就好了后来以为安装的扩展版本不对--按照phpinfo下载的,是对的全网只有一个地方......
  • Kotlin扩展函数原理解析
    一、扩展函数扩展函数可以方便地给现有类增加属性和方法而不改动类地代码。二、原理funString.addTo(s:String):String{returnthis+s}反编译:@Metadata(mv={1,6,0},k=2,d1={"\u0000\n\n\u0000\n\u0002\u0010\u000e\n\u0002\b\u0002\u001a\u......
  • 英语一课一练一年级扩展阅读05The World of Alice-爱丽丝的世界
    PDF格式公众号回复关键字:YYYKYLY05记忆树1Hello!MynameisAlice.翻译你好,我的名字是爱丽丝。简化记忆名字2Thisismyface.It'sround.翻译这是我的脸,它是圆的。简化记忆圆脸3Lookatmyeyes.They'rebig.翻译看我的眼睛,它们很大。简化记忆眼睛4......
  • 记录使用chremo extension 扩展中的页面与其中的iframe通信
    对扩展之前并不怎么了解,简单学过一点js,刷小视频的时候突然冒出想法想做一个扩展。一开始做就遇到了麻烦,记录一下-2024.1.28使用的版本是v3找了挺久文档之后获得了解决方法:其实挺简单的,通过拿到iframe的引用,调用下面的postMessage方法对iframe发送消息variframe=document.ge......
  • php网页开发和漏洞寻找
    前言:放寒假了,之前一直在准备期末,没什么时间学技术和写博客,最近有空了会写一些。本篇博客将接着之前的内容介绍利用php搭建博客的一些步骤,从网页开发角度分析一些常用漏洞的产生。学安全首先要会开发1.1操作数据库php作为一门编程语言,是无法直接与数据库进行交互的,想要进行该......
  • thinkphp8开发简要流程
    安装,根据PHP的版本安装适合的版本composercreate-projecttopthink/thinktp开启多应用模式composerrequiretopthink/think-multi-app创建应用phpthinkbuildadminnginx配置伪静态,把下面的内容保存为nginx.htaccess文件放到应用入口public文件的同级目录下location......
  • 专注工业产品开发的瑞米派,双核A55,兼容树莓派扩展模块
    近日,米尔电子和瑞萨电子共同定义和开发了瑞萨第一款MPU生态开发板——瑞米派(RemiPi)正式上市了!在各种Pi板卡琳琅满目的当下,RemiPi是一款与众不同的开发板,他兼顾了严肃产品开发和爱好者创意实现两种需要。告诉你,选择它的五大理由:1.工业芯片:采用瑞萨RZ/G2L双核A55芯片,芯片是工业级,结......
  • VScode 扩展推荐和配置
    VScode扩展推荐和配置VSCodeExtensions推荐ThemesDraculaOfficial拥有明亮的颜色和舒适的对比度,非常适合长时间编程。Nord基于北极地区自然色调的冷色调主题,提供清晰和舒适的视觉体验。CarbonProductIcons图标设计好看GitHubPlusThemeOneDarkPro基于Atom编......
  • 兼容树莓派扩展模块,专注工业产品开发的瑞米派强势来袭
    近日,米尔电子和瑞萨电子共同定义和开发了瑞萨第一款MPU生态开发板——瑞米派(RemiPi)正式上市了!在各种Pi板卡琳琅满目的当下,RemiPi是一款与众不同的开发板,他兼顾了严肃产品开发和爱好者创意实现两种需要。告诉你,选择它的五大理由:1.工业芯片:采用瑞萨RZ/G2L双核A55芯片,芯片是工......
  • php session反序列化
    关于SessionSession,在汉语中表示通话、会话、对话(期)、话路[对谈时间]的意思,其本来的含义一个终端用户与交互系统进行通信的时间(间隔),通常是指从注册(进入系统)到注销(退出系统)之间所经过的时间。比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个Session......