mac安装ImageMagick与PHP扩展Imagick

2020-01-09 01:24:28

mac安装ImageMagick和php7.2扩展Imagick,从网上搜索教程,感觉好少,有的教程看起来也很麻烦,不过安装起来,没想到竟然如此简单。不非纯灰之力。

步骤一:

    安装ImageMagick


    brew install ImageMagick

    

    直接成功


步骤而:

    安装PHP扩展Imagick

    直接 sudo pecl install imagick

    竟然直接完事了,并且自动配置到了php.ini 上,真是太智能了,重启php,访问接口,好来。


如果中间出现了什么差错,请看下面的地址。

参考地址 mac安装ImageMagick与PHP扩展Imagick


一、安装ImageMagick


    curl -O ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz  


    tar -zxf ImageMagick.tar.gz  


    cd ImageMagick--7.0.7-21/ 


    ./configure --prefix=/usr/local/ImageMagick  


    make  


    sudo make install 




 二、安装PHP扩展Imagick


看了网上好多方式安装,尝试了很多次,进了各种坑,还是发现这种方式最好。


1、pear/pecl 需要单独进行安装


curl -O http://pear.php.net/go-pear.phar


sudo php -d detect_unicode=0 go-pear.phar


输入1,回车,配置pear路径为:/usr/local/pear,回车


输入4,回车,配置命令路径为:/usr/local/bin,回车


回车两次,其他让其默认,安装完成


pear version   检查pear安装是否成功




2、通过pecl安装imagick扩展


sudo pecl install imagick


如果出现pkg-config: command not found,就执行brew install pkg-config,然后再执行一次上步的安装即可,其他问题见下面问题及解答


然后出来Please provide the prefix of Imagemagick installation[autodetect] :


输入/usr/local/ImageMagick,也就是上一步的前缀,注意大小写


然后出现:




就说明安装成功了,同时提醒你到php.ini里添加extension=imagick.so这句扩展




3、查看扩展是否成功安装


php -m 查看扩展已经安装上了,但是phpinfo()在浏览器中并没有显示出来,此时重启php-fpm即可:


php-fpm.restart




php -m  ==看php扩展


php -i    ==看phpinfo


php -i |grep php.ini   ==查看php.ini所在位置



三、遇到的问题:


问题1:


checking for MagickWand.h header file… configure: error: Cannot locate header file MagickWand.h  




原因:


ImageMagick 6.8这个版后的目录结构变了,旧版本头文件是放在/usr/local/ImageMagick/include/ImageMagick目录的,而ImageMagick 6.8则是放在/usr/local/ImageMagick/include/ImageMagick-6




解决方法:添加软连接,命令如下


sudo ln -s /usr/local/ImageMagick/include/ImageMagick-7  /usr/local/ImageMagick/include/ImageMagick 


make && sudo make install


    


问题2:  


/usr/local/ImageMagick/bin/MagickWand-config: line 53: pkg-config: command not found




原因:没有安装pkg-config工具




解决方法:


brew install pkg-config 


    




问题3:错误信息


 ./php_imagick.h:49:12: fatal error: ‘wand/MagickWand.h’ file not found


    #  include <wand/MagickWand.h>


           ^


    1 error generated.


    make: *** [imagick_class.lo] Error 1




原因:没安装pkg-config工具导致




解决方法:


按照上一步安装pkg-config 即可。需要注意的是 少一个参数或者有一个不对的,可能会折腾好久。




问题4:


No releases available for package "pecl.php.net/imagick"


网络问题,换个快点的网络即可




问题5:


pecl/imagick is already installed and is the same as the released version 3.4.3


sudo pecl uninstall imagick,然后再sudo pecl install imagick


  • 2019-08-07 09:07:32

    最全的Service Worker讲解

    Service Worker 最主要的特点是:在页面中注册并安装成功后,运行于浏览器后台,不受页面刷新的影响,可以监听和截拦作用域范围内所有页面的 HTTP 请求。 基于 Service Worker API 的特性,结合 Fetch API、Cache API、Push API、postMessage API 和 Notification API,可以在基于浏览器的 web 应用中实现如离线缓存、消息推送、静默更新等 native 应用常见的功能,以给 web 应用提供更好更丰富的使用体验。

  • 2019-08-07 09:09:19

    windows系统下定时关闭程序

    其中xxx.exe是你要关闭的进程中运行的exe,可以ctrl+alt+del打开任务管理器,进到详细信息查看 然后把.txt文件后缀改成.bat(此时要在查看一栏勾上文件拓展名,要不还是txt文档)

  • 2019-08-07 09:16:43

    一个比较完美的PWA例子

    但就目前来讲,PWA是Google主推的一项技术标准,FireFox,Chrome以及一些基于Blink的浏览器已经支持渐进式Web应用了,Edge上对渐进式Web应用的支持还在开发。Apple公司也表示会考虑在自己Safari支持PWA。然而这项功能已经进入了WebKit内核的五年计划中。长期来看,对浏览器兼容性的支持方面应该已经不算太大问题了。况且在现阶段,在不支持渐进式Web应用的浏览器中,你的应用也只是无法使用渐进式Web应用的离线功能而已,除此之外的功能均可以正常使用。

  • 2019-08-07 09:57:48

    spring data jpa 实体类中字段不与数据库表映射

    当我们使用spring data jpa开发的时候,会将实体类中的成员变量与表中的字段一一对应,当我们在实体类中加上一个不与数据库表一一对应的成员变量的时候,此时我们只要在这个成员变量上加上注解@Transient @

  • 2019-08-07 17:16:53

    如何在 Node.js 中使用 import / export 的三种方法

    因为一些历史原因,虽然 Node.js 已经实现了 99% 的 ES6 新特性,不过截止 2018.8.10,How To Enable ES6 Imports in Node.JS 仍然是老大难问题,下面我来介绍三种方法可以让我们在 Node.js 中使用 import/export 。

  • 2019-08-13 08:56:46

    nuxtjs组合element

    添加elementUI 插件,plugins->ele.js,代码如下

  • 2019-08-13 20:06:42

    修改 Nginx 进程最大可打开文件数(worker_processes和worker_connections)

    worker_processes:操作系统启动多少个工作进程运行Nginx。注意是工作进程,不是有多少个nginx工程。在Nginx运行的时候,会启动两种进程,一种是主进程master process;一种是工作进程worker process。例如我在配置文件中将worker_processes设置为4,启动Nginx后,使用进程查看命令观察名字叫做nginx的进程信息,我会看到如下结果:

  • 2019-08-14 09:01:18

    linux下高并发服务器实现

    在做网络服务的时候tcp并发服务端程序的编写必不可少。tcp并发通常有几种固定的设计模式套路,他们各有优点,也各有应用之处。下面就简单的讨论下这几种模式的差异: