在Hypver-v虚拟机(Debian 12)上部署一套源码,语言是PHP,依赖fileinfo扩展,因此需要安装一下。通过宝塔面板安装,过了一会卡死了,SSH输入命令都卡死。
在Hypver-v的管理器查看该虚拟的状态,发现CPU使用率极低,故排除CPU性能问题,打开宿主机的“任务管理器“发现资源占用除了某个硬盘的IO读写利用率100%。
分析:该硬盘时HHD的,认为时性能问题,迁移至SSD硬盘上,启动虚拟机,重新执行安fileinfo扩展操作,再次卡死。
最后通过阅读相关资料,发现不是特例,在PHP8.1上安装fileinfo扩展会大概率出现IO占用率100%这一情况。
两个解决方案:
- 设置swap虚拟内存
- 手动编译安装
我这里选择了设置swap虚拟内存解决了问题,如果设置了swap虚拟内存还是不能解决,那么可以尝试第二种方案。
手动编译:【其中的版本号数字换成自己的就行了】
cd /www/server/php/82/src/ext/fileinfo/
/www/server/php/82/bin/phpize
./configure --with-php-config=/www/server/php/82/bin/php-config
sed -i "s#CFLAGS = -g -O2#CFLAGS = -std=c99 -g#g" Makefile
make && make install
echo "extension=/www/server/php/82/lib/php/extensions/no-debug-non-zts-20210902/fileinfo.so" >> /www/server/php/82/etc/php.ini
echo "extension=/www/server/php/82/lib/php/extensions/no-debug-non-zts-20210902/fileinfo.so" >> /www/server/php/812/etc/php-cli.ini
/etc/init.d/php-fpm-82 restart
参考:
- 安装php8.1的fileinfo扩展时服务器卡死无响应 – Linux面板 – 宝塔面板论坛 (bt.cn)
- php – 如何避免AMH环境安装PHP扩展导致服务器卡死? – SegmentFault 思否
- 宝塔面板php8.1安装fileinfo失败或无法安装的解决方案_fileinfo安装不上-CSDN博客
正文完
发表至: NuxtJS
2024-06-14