windows和Linux下安装imagick扩展(linux下支持pdf转image)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29238009/article/details/78406340

**

windows:

**
一、准备材料
1.ImageMagick的安装包
2.php_imagick扩展一份(可以在官方网站找好像https://pecl.php.net/package/imagick/3.4.1/windows
上面两个东西我下面都会给出网盘地址,网盘里面的是我自己在win10下安装测试ok的版本。因为安装这个扩展需要版本match得比较好,你也可以试试我这个组合,也可以自己尝试一下其他组合。

二、各种安装配置
1.ImageMagick的安装。

这是个软件来的,就直接安装就好了,然后将它安装在没有空格中文的目录下,我是默认安装在了C:\。整个软件所在的地址就是C:\ImageMagick-6.9.2-Q16。安装好之后要配置环境变量,哪里打开的我就不赘述了,随便百度就有了。我这里说说要配置什么环境变量,以我这个版本为例。
在系统变量里面的Path加入两个值,一个是%MAGICK_HOME% ,另一个是C:\ImageMagick-6.9.2-Q16。然后在系统变量里面新增一个变量,变量名为MAGICK_HOME,变量值为C:\ImageMagick-6.9.2-Q16\modules\coders,就是上面那个文件夹下面modules\coders的绝对地址。
弄好后打开命令行(win+R)输入convert,会有一大串东西冒出来,这样就说明软件部分安装好了,如果只有一句提示的话,那么重启一下电脑,再输入convert,应该就有了。

2.php扩展的安装

将材料2压缩包里面的东西打开看看。将里面的php_imagick.dll放进你php的ext里面,剩下的.dll文件放入php根目录下。然后在你的php.ini加上extension=php_imagick.dll。然后你重启下服务器,再输出phpinfo()就能找到imagick这个扩展了,但是可能support format是0,是0的话重启下电脑,因为环境变量OS要重新load一遍才能识别。

Warning!如果你是集成的服务器,wamp之类的,可能只改php.ini在phpinfo()里面还不能看到imagick这个扩展,因为apache用的是phpForApache.ini这个文件,反正你在php目录下搜索php.ini,把php.ini和phpForApache.ini都加上extension就好了

安装好了软件,配置好了环境变量,然后设置好了php扩展,重启下电脑,再输出phpinfo(),应该就能看到完整能用的imagick扩展了。

度盘:
https://pan.baidu.com/s/1c100Knu#list/path=%2F

这个扩展真的是无敌难装,网上搜索到的很多教程在设置环境变量和设置php变量上都有不同,然后还有就是php的dll和软件的版本真的好难找啊!这个奇葩的软件,高版本的不能适应低版本的,我装了好多版本才成功能用(;д;)。这样应该能用imagick操作图片了。

但是我的需求是要用它将pdf转成图片。这里还涉及到一个ghostscript的东西。。。但是好像windows下不能用吧,过段时间我再试试在linux下看看能不能用

图片类操作 done。pdf操作to be continued

Linux:

一、准备材料
无。。。所有东西都是在系统直接命令行装的,不用另外下载东西。我这里的系统是CentOS7,LAMP服务器环境,php升级到了php7,其他的php版本应该也一样,可以类比得去调整,但是不保证能装上能用哦~毕竟我没试其他php版本

二、安装
感觉linux下安装还是挺简单的。输入合适的命令行,然后那些源没挂掉就差不多了
参考:https://jingyan.baidu.com/article/91f5db1be6ded11c7f05e3d3.html

这里写图片描述

在执行下面命令之前,你要确保你的LAMP是OK能用的,然后上面的yum list列出的东西你都要装好(yum install xxxxx,xxxx是你自己系统对比我上面少的东西),你自己在系统上输入这个list命令看看自己装了多少,我是php7的,所以前缀都是php70w,如果你是5.5或者5.6的版本,那么改成php55w或者php56w就好了,但是不保证能用哦~

依次运行以下命令(当然你最好参考上面那个网址吧)
1.安装ImageMagick这个软件
yum install ImageMagick
yum install ImageMagick-devel
yum install gcc(安装不了就yum install gcc gcc-c++ autoconf automake)
安装好后,你在命令行输入convert应该有相应的介绍,有的话就说明装好了

2.安装imagick
pecl install imagick(只有这句话。。。中间好像会让你指定一下ImageMagick的安装路径,它要做连接,我鬼知道啊!= =,但是好彩它后面也有提示说可以auto寻找,那么你直接回车就好了,系统会自己找那个软件的了)

安装完成后,在你php.ini里面加上extension=imagick.so(如果你是yum安装的话,一般在/etc/php.ini,你也可以在根目录下搜一下php.ini看看可能在哪里)

3.重启apache
service httpd restart

然后你输出一下phpinfo找找看imagick,应该成功安装了

如果你还要操作pdf,例如我这个需求是需要做pdf预览(将pdf第一页做成图片),那么你还需要安装ghostscript这个东西。但是我不知道为什么,centos7里面居然有了这个东西了。。。如果你没有的话,装好下面截图的几个东西就应该可以了。也是yum install XXX应该就可以了
这里写图片描述

上面的东西都装好的话,那么你将会获得新操作
这里写图片描述
这样就能将pdf的第一页输出成jpg了,然后我试验了一下,png会缺失一些东西,jpg太糊了,然后我灵机一动,用jepg,就挺ok的了~!但是不算是高清,还是糊糊的,但是起码看得清楚pdf上面的字了。好吧,就这样,因为ghostscript我在linux下才能用,windows安装好了环境变量也设置也但是imagick还是用不了pdf,可能我环境变量没设置好吧,但是搜索不到比较完整的教程了。stackflow都没什么帖子讨论这个东西。

—————————————————————linux下的补充———————————————————————
1. 如果要源码安装gs的话,选择官网那里全平台的那个linux版本,这样才能./configure make && make install安装。
2. 如果什么都装好了,然后还是报错,特别是报错里面有@ error/pdf.c/InvokePDFDelegate这句话,可能是你php有路径没包含进去。这里给出Stack Overflow的解决方法:

I had the same problem on MacOS High Sierra, PHP 7.0 installed from Homebrew. 
The problem is that FPM $PATH contains (as echoed by <php echo getenv('PATH'); ?>) 
/usr/bin:/bin:/usr/sbin:/sbin, which doesn't include Brew's /usr/local/bin/ install path.

To solve I added

env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

to /usr/local/etc/php/7.0/php-fpm.d/www.conf, restarted php70 and worked!
 On Homebrew's forums @comes suggested to add the same to .env file

就是要你在www.conf里面加上这个路径,具体要看你gs的可执行文件在哪个路径,一般是这个,不是的话自己找一下所有gs的路径,然后加上去看看会不会消除这个错误

猜你喜欢

转载自blog.csdn.net/qq_29238009/article/details/78406340