最近更换服务器,使用oneinstack脚本安装了环境,不得不说PHP8的速度确实快了很多,但是发现PHP8的imagick和fileinfo两个扩展,虽然在配置过程选择了安装,但是最终没有安装成功。通过在网上搜索最终将这两个扩展安装完成。
先是 fileinfo扩展的安装,解决这个问题是参照了一位网友的办法:
网址:https://cyhour.com/1560/
过程大致如下:
- 下载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扩展是否安装完成。

接着是 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查看是否安装完成。
