这两天网站不稳定,就是在新服务器上,测试新的环境造成的。

一开始想使用php8.0,但是最终还是放弃了,因为我服务器还有其他程序不支持php8.0,因为服务器配置问题,也不可能安装多个php版本,不过还是测试了一把php8.0。

但是默认安装fileinfo的时候失败了,查了是因为新版本php和fileinfo编译时候的代码兼容问题,现在很多脚本安装的应该也没有改进。

具体怎么编译就不说了,之前发过怎么安装fileinfo扩展,只说下怎么加代码解决,先照常安装编译fileinfo,等安装失败了,然后就会出现Makefile文件。

在你自己的目录下,去修改Makefile文件,比如我的在 /root/oneinstack/src/php-8.0.3/ext/fileinfo。

在第25行,改下代码:

CFLAGS = -std=c99 -g -O2
#原来是CFLAGS = -g -O2

修改好之后,再去执行安装。

make && make install

现在用php -m就能看见已经安装好了。

记得把extension=fileinfo.so加到自己php.ini文件,或者单独新建文件也行,比如oneinstack的fileinfo.ini,放到扩展配置目录下。如果正常安装这个是自动生成的,但是这样改代码安装,并没有自动生成,不知道是我自己安装问题,还是都这样,所以自己手动加下吧,反正之后测试fileinfo是正常可以使用的。