本文详细介绍了在老版本的LAMP环境下,如何从GitHub下载并手动安装最新版本的ImageMagick,php-imagic库以及libwebp,以解决PHP5.6版本中webp支持问题,包括加载动态库、卸载旧版本、配置环境变量和编写测试代码的过程。
系统环境
- 操作系统:centos6/centos7.x系列
- LAMP环境:宝塔或lnmp
- php版本:php5.6系列 (线上PHP版本较老)
一、准备的安装包
全程都是源码包安装,这里的安装包是统一下载在目录/root下
1.ImageMagick.tar.gz(最新版本的)
将 ImageMagick 仓库克隆到一个名为 ImageMagick-7.1.0
的本地目录中
git clone https://github.com/ImageMagick/ImageMagick.git ImageMagick-7.1.0
2.php-imagic库下载(PHP5.6只能下载3.4.4及以下)
从下图的描述中看,3.4.4是PHP5系列最后一个版本,这里是采用3.4.3
以3.4.3为例 下载:
wget https://pecl.php.net/get/imagick-3.4.3.tgz
3.从github上下载libwebp库
这个很重要,yum安装的版本太低,imagemagic不识别,这导致webp始终安装不上
以1.2.2为例 下载:
wget -cO libwebp-v1.2.2.tar.gz https://github.com/webmproject/libwebp/archive/refs/tags/v1.2.2.tar.gz
二、加载公共动态库
由于libwebp,imagemagic安装完成,需要手动刷新动态库才生效,所以采用ldconfig来加载动态链接库,所以需要把/usr/local/lib加到配置文件中
三、开始安装
卸载老的ImageMagick
yum -y remove ImageMagick
卸载老的libwebp
yum -y remove libwebp
1.先安装libwebp
- 安装脚本:
如果需要支持gif格式转换webp格式 那么在 CentOS 上安装 GIF 相关的库和开发工具包。通常,你需要安装 libgif
的开发包。使用 yum
包管理器执行以下命令:
如果报错..
1.检查源代码完整性: 确保你下载的 ImageMagick 源代码包完整且未损坏。重新下载源代码可能会解决问题。
2.运行 autoreconf 或 autogen.sh: 有些软件包的源代码中包含了 autogen.sh 或者 autoreconf 脚本,用于生成 configure 脚本及相关文件。尝试运行这些脚本可以重新生成可能缺失的文件。
或
安装必要的构建工具: 确保你的系统上安装了构建
- 验证
cwebp -version
出现了这个错误,提示共享库找不到,需要执行ldconfig
重新加载/usr/local/lib就行
2.设置临时的PKG_CONFIG_PATH环境变量
这一步很重要,要不然再安装ImageMagick时找不到libwep的库,pkg-config是来注册依赖库的信息
没有设置PKG_CONFIG_PATH时编译ImageMagick的错误信息:
3.安装ImageMagick
- 编译:
编译记录出现如下几个选项表示成功了
- 执行安装:
make && make install #安装过程有点漫长
- 验证
convert -list format #查看ImageMagic的图片转换命令convert是否能正常执行
报错 执行ldconfig
4.安装php-imagick
- 宝塔面板安装php扩展
如果是其他的LAMP环境可以使用:
- 配置PHP及ImageMagick
编辑PHP5.6的配置文件,在末尾加上以下内容(no-debug-non-zts-20190902文件夹名称需以你服务器的具体文件夹名为准,请自行修改,勿照抄):
[imagick]
extension = /www/server/php/56/lib/php/extensions/no-debug-non-zts-20131226/imagick.so
编辑/etc/ImageMagick-6/policy.xml文件,根据服务器具体情况修改以下几项的值,memory,map,area将限制ImageMagick所使用的内存缓存,width,height限制ImageMagick所处理的图片大小。
验证
phpinfo中如果出现了webp,那么就说明成功了
5.补充
源码包不要删除,方便后面卸载升级,不然会很麻烦,需要一个个找出来再卸载
- ImageMagic和libwebp的源码包卸载
cd ImageMagick-7.1.0-57
make uninstall
cd libwebp-1.2.2
make uninstall
- php扩展imgick的卸载
pecl uninstall pecl
- 最新
- 最热
只看作者