php 7.4在宝塔中频繁重启主因是oom killer杀进程或配置语法错误;需先用dmesg和free确认内存不足,kvm/xen架构下用linux工具箱配swap,再检查php.ini语法、收紧pm.max_children等fpm参数,并停用冗余扩展。

PHP 7.4在宝塔面板中频繁重启,不是配置没保存或点击不生效,而是进程被系统强制终止——大概率是内存不足触发OOM Killer杀掉了php-fpm-74进程,或PHP配置中存在语法错误导致子进程反复崩溃。
确认是否被OOM Killer干掉
执行 dmesg -T | grep -i "killed process",如果输出里出现 php-fpm 或 php-fpm-74,说明内核已动手;再跑 free -h,看 available 是否长期低于 200M。
OVZ架构的VPS不支持Swap,跳过后续Swap操作;KVM/XEN架构才能继续下一步。
进宝塔「软件商店」→ 搜索安装「Linux工具箱」→ 进入设置 → 左侧选「Swap/虚拟内存」→ 填写大小(1GB内存配2GB Swap)→ 点「确定」。
【Swap文件默认存于 /www/swap,确保该路径所在磁盘剩余空间 ≥ 设置值】
检查PHP配置是否合法
进入宝塔「软件商店」→ 找到 PHP-7.4 → 「设置」→ 「配置修改」,先别改,点右上角「检查配置」按钮。
若提示报错,说明 php.ini 或扩展配置文件(如 /www/server/php/74/etc/php.d/xx.ini)存在语法错误。常见坑:末尾多了一个分号、引号没闭合、extension= 写成了 extention=。
手动验证:执行 /www/server/php/74/bin/php -t,返回 Configuration file /www/server/php/74/etc/php.ini OK 才算过关。
收紧PHP-FPM资源限制
第一步:编辑 /www/server/php/74/etc/php-fpm.d/www.conf,找到以下三行并修改:
pm.max_children = 30(原值常为50,1GB机器超30极易OOM)
pm.start_servers = 5(从10降到5,避免启动时瞬间吃光内存)
pm.max_requests = 500(防止长连接内存泄漏累积,原值0代表不限制)
第二步:重启PHP服务 → 进宝塔「软件商店」→ PHP-7.4 → 「设置」→ 「重启」。
第三步:观察半小时,用 ps aux | grep php-fpm 看实际运行进程数是否稳定在30以内。
停用非必要PHP扩展
方法一:进宝塔「软件商店」→ PHP-7.4 → 「设置」→ 「安装扩展」→ 取消勾选所有未使用的扩展,只保留 opcache、fileinfo、curl、mysqli、redis(若站点真用)。
方法二:命令行清理残留扩展,执行:rm -f /www/server/php/74/etc/php.d/{xcache.ini,apcu.ini,eaccelerator.ini,ioncube.ini}
【删前确认这些扩展没被任何站点依赖,否则页面会直接500】
删完执行:/etc/init.d/php-fpm-74 restart。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











