linux下 安装 ImageMagick 及其 php imagick扩展

PHP版本 7.1.29 ;
ImageMagick版本 ImageMagick-7.0.8-68;
PHP扩展imagick版本 imagick-3.4.4;

ImageMagick 安装(第一步)

1.下载ImageMagick安装包

2.解压安装包

#tar xvfz ImageMagick.tar.gz

3.进入文件

#cd ImageMagick-7.0.8-68/

4…设置安装路径.后面安装php扩展需要用到;/usr/local/imagemagick

#./configure --prefix=/usr/local/imagemagick

5.编译

#make && make install

PHP imagick扩展安装(第二步)

1.下载imagick-3.4.4.tgz

2.解压安装包

#tar zxvf imagick-3.4.4.tgz

3.进入安装文件

#cd imagick-3.4.4/

4.执行phpize命令

#/usr/local/php/bin/phpize

5.ImageMagick 6.8以上版本目录为/usr/local/include/ImageMagick-X,在configure之前先做下软连接

#ln -s /usr/local/imagemagick/include/ImageMagick-7 /usr/local/imagemagick/include/ImageMagick

6.执行configure配置

./configure --with-php-config=/usr/local/php/bin/php-config --with-imagick=/usr/local/imagemagick

7.编译

#make
#make install

查看PHPinfo信息,搜索extension_dir(以windows的为例),看下路径,然后在,php文件添加上

修改php.ini

extension = "php_imagick.dll"
linux 应为
extension = "php_imagick.so"

(完成)

问题处理 : imagick无法安装时的解决办法

首先确认各种格式的图片代理有没有安装

错误信息

> 安装 ImageMagick 代理
- jpeg 代理 https://www.imagemagick.org/download/delegates/jpegsrc.v9b.tar.gz
- png 代理: https://www.imagemagick.org/download/delegates/libpng-1.6.31.tar.gz
- GIF 代理 https://www.imagemagick.org/download/delegates/freetype-2.8.1.tar.gz

docker的alpine系统中需要apk安装:

apk add jpeg-dev libpng-dev freetype-dev

有时安装imagick是会提示:

1
“configure: error: not found. Please provide a path to MagickWand-config or Wand-config program.”

这是因为只安装了“ImageMagick”而没有安装“ImageMagick-devel”,通过下面的命令行安装ImageMagick-devel,然后重新按上面的步骤安装imagick就好了。

1
yum install ImageMagick-devel

或者

sudo apt-get install libmagickcore-dev libmagickwand-dev

扩展- PHP imagick扩展安装(第二步)可能会遇到的问题解决:

(;configure通过,在make时出现错误error: wand/MagickWand.h: No such file or directory
解决办法:
#yum install gtk2-devel
#export PKG_CONFIG_PATH=/usr/local/imagemagick/lib/pkgconfig/
;
;然后重新安装imagick
;
#cd imagick-3.4.3RC3/
#/usr/local/php/bin/phpize
#./configure --with-php-config=/usr/local/php/bin/php-config --with-imagick=/usr/local/imagemagick
#make
#make install)

修改PHP配置文件(第三步)

修改php.ini文件,添加extension=fileinfo.so

重启nginx和php

nginx重启命令:systemctl restart nginx

php重启命令:systemctl restart php-fpm

3.安装Ghostscript

下载地址 https://www.ghostscript.com/download/gsdnld.html

wget https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs926/ghostscript-9.26-linux-x86_64.tgz

tar zxvf ghostscript-9.26-linux-x86_64.tgz

cd ghostscript-9.26-linux-x86_64

mv gs-926-linux-x86_64 /usr/bin/gs

完成

PHP pdf转png linux版本的更多相关文章

  1. 让PDF.NET支持不同版本的SQL Server Compact数据库

    最近项目中需要用到嵌入式数据库,我们选用的数据开发框架是PDF.NET(http://www.pwmis.com/SqlMap/),之前的博文已经总结了让PDF.NET支持最新的SQLite,今天我们 ...

  2. 使用VS+VisualGDB编译Linux版本RCF

    RPC通信框架--RCF介绍中说了,RCF本身是支持跨平台的,其代码放到Linux平台,是可以通过gcc.make等工具,编译通过的. 官方提供的源码中,只有cmake编译脚本,并没有提供Makefi ...

  3. 查看linux版本

    http://nameyjj.blog.51cto.com/788669/557424 1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version     ...

  4. 最稳定 性能最好 的 Linux 版本?

    Ubuntu太他妈不稳定了,简直是一坨屎 CentOS.Ubuntu.Debian三个linux比较异同http://blog.csdn.net/educast/article/details/383 ...

  5. Ubuntu下查看linux版本,内核版本,系统位数,gcc版本

    1. 查看linux版本  sunny@ubuntu:~$cat /etc/issueUbuntu 11.04 \n \l 2. 查看内核版本1) sunny@ubuntu:~$ cat /proc/ ...

  6. 为Linux版本Oracle 11gR2配置HugePage

    HugePage是Oracle在Linux版本下一种性能优化手段.对于共享内存区域(SGA)的数据库系统,Oracle通常都推荐在操作系统层面配置上HugePage,为Oracle实例准备更大的可用共 ...

  7. 【转】 如何查看linux版本 如何查看LINUX是多少位

    原文网址:http://blog.csdn.net/hongweigg/article/details/7192471 一.如何得知自己正在使用的linux是什么版本呢,下面的几种方法将给你带来答案! ...

  8. 转:如何查看linux版本 如何查看LINUX是多少位

    原文来自于:http://blog.csdn.net/hongweigg/article/details/7192471 一.如何得知自己正在使用的linux是什么版本呢,下面的几种方法将给你带来答案 ...

  9. 如何查看linux版本

    1. 查看内核版本命令: 1) [root@q1test01 ~]# cat /proc/version   Linux version 2.6.9-22.ELsmp (bhcompile@crowe ...

随机推荐

  1. 【转】C# / Extension 扩展方法

    扩展方法简介扩展方法使你能够向现有类型"添加"方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调 ...

  2. ansible学习(二)- 清单配置详解

    出处:http://www.zsythink.net/archives/2509 上一篇文章介绍了ansible的基本概念,以及相关的基础配置,我们已经知道,如果想要管理受管主机,则需要将受管主机添加 ...

  3. Java 中的锁原理、锁优化、CAS、AQS 详解!(转)

    1.为什么要用锁? 锁-是为了解决并发操作引起的脏读.数据不一致的问题. 2.锁实现的基本原理 2.1.volatile Java编程语言允许线程访问共享变量, 为了确保共享变量能被准确和一致地更新, ...

  4. Xcode 插件失效,启动崩溃解决

    升级6.4点击 Alcatraz PackageManager 崩溃解决 进入插件安装目录 cd ~/Library/Application\ Support/Developer/Shared/Xco ...

  5. 群聊(udp)

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  6. spring property标签中的 ref属性和ref 标签有什么不同

    spring的配置文件可能会有多个<property name="a" ref="b" />就是找当前配置文件里的bean 也就是b <ref ...

  7. traceback.print_exc()的用法

    Python使用traceback.print_exc()来代替print e 来输出详细的异常信息   [python] view plain copy try: 1/0 except Except ...

  8. 帆软报表(finereport)控件背景色更改

    setTimeout(function() { $('.fr-trigger-btn-up').css({ "background-color": "#003399&qu ...

  9. Solution -「ARC 110E」Shorten ABC

    \(\mathcal{Description}\)   Link.   给定长度为 \(n\),包含 A, B, C 三种字符的字符串 \(S\),定义一次操作为将其中相邻两个不相同的字符替换为字符集 ...

  10. ELK-EFK-v7.12.0日志平台部署

    ELK和EFK是什么 ELK和EFK是四个开源产品的组合: Elasticsearch 一个基于Lucene搜索引擎的NoSQL数据库 Logstatsh 一个日志管道工具,接受数据输入,执行数据转换 ...