您的位置:首页 > 运维架构 > Apache

Windows php5.6配置imagick 基于Apache/IIS

2016-12-19 00:00 155 查看
安装Imagick确实是很恼火的事情,网上的讨论一大堆,中文英文都有,我也在这里卡了很久,这次基本上算是弄明白了,记录一下。

Imagick有点像MySQL的安装方式一样,首先服务器需要安装MySQL Server,然后php需要安装mysql扩展,通过扩展提供的api(诸如mysql_connect这些方法)去调用执行mysql。

1. 我的环境
Win7 + Apache2.4 + php5.6.28
WinServer 2012 + IIS8.5 + php5.6.28

2. 先要去官方下载最新版Imagick https://www.imagemagick.org/ 1. 虽然官方建议首选x64,不过我还是选的x86,因为我的php用的是x86(php, Imagick版本一致总不会出错,虽然我的windows系统是64位)。
2. Q8和Q16的区别官方写得很清楚了,因此我最终选择的是 ImageMagick-7.0.4-0-Q16-x86-dll.exe
3. 紧接着是安装,选择将Imagick加入环境变量,接着下一步直至完成。这一步很重要!
4. 安装完成的目录为C:\ImageMagick-6.9.7-Q16\ 当然这只是为了便于后面的说明,实际情况可以安装在任何目录下

3. 去官方下载php的Imagick扩展 https://pecl.php.net/package/imagick 1. 网上建议选择非RC的stable版本
2. Apache使用TS版本(就算php是NTS),IIS则使用NTS版本。原因我还没搞明白。
3. 最终我选择的是 php_imagick-3.4.1-5.6-ts-vc11-x86.zip
4. 下载解压,需要做2件事
1. 将压缩包里的php_imagick.dll拷贝到php extension目录,并修改php.ini

extension=php_imagick.dll

2. 将压缩包里CORE_RL_*.dll的文件(我的版本一共8个)拷贝至Imagick的安装目录下(C:\ImageMagick-6.9.7-Q16\),建议在替换之前先备份
5. 重启服务器,Apache不建议使用restart,使用stop+start才会生效。IIS我试着重启好像也没效果,因此直接重启的系统。

此时通常来说使用phpinfo可以查看到imagick已经安装成功了。甚至可以直接使用了。不过运气不好也会遇到很多坑。

4. 可能需要调整Imagick版本
通过phpinfo可以看到一条信息Imagick compiled with ImageMagick version,如果你在step2安装的版本和这个版本出入很大,就很有可能导致ImageMagick supported formats为no value。我就是遇到了这个问题 :
Imagick compiled with ImageMagick version:6.9.3-7
我安装的Imagick为:7.0.4-0
此时需要重新下载相应版本的Imagck,重复step1的安装步骤,还记得step2替换那8个dll文件

5. ImageMagick supported formats:no value
有可能仍然为no value,这次应该不是版本的问题了,需要新建一个系统环境变量
MAGICK_HOME=C:\ImageMagick-6.9.7-Q16\modules\coders
重启服务器,我所遇到的问题就解决了

6. 查阅的一些网站 http://stackoverflow.com/questions/15279301/imagemagick-supported-formats-no-value http://stackoverflow.com/questions/2858439/installing-imagemagick-extension-with-php-windows http://hexydec.com/blog/how-to-get-imagemagick-working/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: