PHP8安装imagick和fileinfo扩展的问题和办法

最近更换服务器,使用oneinstack脚本安装了环境,不得不说PHP8的速度确实快了很多,但是发现PHP8的imagick和fileinfo两个扩展,虽然在配置过程选择了安装,但是最终没有安装成功。通过在网上搜索最终将这两个扩展安装完成。

先是 fileinfo扩展的安装,解决这个问题是参照了一位网友的办法:

网址:https://cyhour.com/1560/

过程大致如下:

  1. 下载PHP8的压缩包并解压,由于我使用oninstack脚本安装过程中已经下载了PHP8的包并且已经解压,这里直接进入fileinfo的目录并执行一些操作:
# cd php-8.0.3/ext/fileinfo 
# /usr/local/php/bin/phpize 
# ./configure --with-php-config=/usr/local/php/bin/php-config --enable-fileinfo

执行完后会在 /php-8.0.3/ext/fileinfo 目录下生成 Makefile 文件,编辑它,在 25 行 CFLAGS = -g -O2 处加上 -std=c99 参数,修改后的第25行:

CFLAGS = -std=c99 -g -O2

保存之后再执行:

# make && make install

完成后可以看到提示:

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20200930/

重启 php-fpm,使用探针查看fileinfo扩展是否安装完成。

fileinforryryn扩展

接着是 imagick扩展,由于使用oneinstack安装过程中选择了安装这两个扩展,虽然不成功,但是ImageMagick已经被安装进系统了,可以通过

convert -version

查看版本,如下:

Version: ImageMagick 7.0.11-7 Q16 x86_64 2021-04-12 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP(3.1) 
Delegates (built-in): bzlib fontconfig freetype jng jpeg lzma png tiff x xml zlib

但是用在PHP上的扩展 imagick 并没有安装成功,具体原因不清楚,猜测是因为官方库里的imagick并没有为PHP8进行适配,所以我从github下载了一个包下来,地址:

https://github.com/Imagick/imagick

下载完成后,解压,进入到解压后的目录,开始安装imagick扩展:

# phpize
# ./configure
# make && make install

安装完成会出现下面提示:

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20200930/
Installing header files:          /usr/local/php/include/php/

然后在php.ini中增加 extension=imagick.so,之后重启php-fpm,再用探针或者phpinfo查看是否安装完成。

imagick扩展

发表回复

您的电子邮箱地址不会被公开。