宝塔面板PHP Session垃圾清理有四种方法:一、用计划任务执行find命令定时删除过期文件;二、调高session.gc_probability至1、gc_divisor至100以增强自动回收;三、SSH手动定位session.save_path并清理;四、切换Session存储为Redis避免本地文件残留。

如果您在宝塔面板中运行PHP网站,发现服务器磁盘空间被大量PHP Session文件持续占用,且这些文件长期未被自动清理,则可能是PHP默认的Session垃圾回收机制未生效或配置不合理。以下是多种可直接在宝塔面板中执行的一键清理Session垃圾的方法:
一、通过宝塔面板内置计划任务执行清理脚本
该方法利用Linux系统的find命令结合宝塔计划任务,定时扫描并删除过期的Session文件,无需修改PHP配置,适用于所有PHP版本及运行模式。
1、登录宝塔面板,点击左侧菜单栏的【计划任务】。
2、点击【添加计划任务】,任务类型选择【Shell脚本】。
立即学习“PHP免费学习笔记(深入)”;
3、任务名称填写清理PHP Session垃圾,执行周期建议设置为每天凌晨2点(如:0 2 * * *)。
4、在脚本内容框中粘贴以下命令:
find /www/php_session -name \"sess_*\" -mmin +1440 -delete 2>/dev/null
5、点击【添加任务】保存,系统将自动按设定周期执行清理。
二、修改PHP配置启用自动GC并提高触发概率
该方法通过调整PHP的session.gc_probability和session.gc_divisor参数,提升PHP内置垃圾回收机制的触发频率,使Session文件在过期后更及时被清理。
1、进入宝塔面板【软件商店】,找到已安装的PHP版本,点击右侧【设置】。
2、切换到【配置修改】选项卡,在配置文件中查找session.gc_probability和session.gc_divisor两行。
3、将session.gc_probability值改为1,session.gc_divisor值改为100(即1%触发概率提升至100%)。
4、在同页查找session.gc_maxlifetime,确认其值不小于1440(单位:秒,即24小时),确保与实际Session有效期匹配。
5、点击【保存】,随后点击【重载配置】使修改生效。
三、使用SSH手动定位并清空指定Session目录
该方法适用于需立即释放磁盘空间的紧急场景,直接定位PHP实际使用的Session存储路径并批量删除过期文件,操作精准可控。
1、在宝塔面板【终端】或通过SSH工具连接服务器。
2、执行命令查看当前PHP的session.save_path:php -i | grep session.save_path。
3、根据输出结果进入对应目录,例如输出为 /www/php_session,则执行:cd /www/php_session。
4、执行清理命令:find . -name \"sess_*\" -mmin +1440 -delete。
5、执行ls -la | wc -l验证剩余文件数量是否显著减少。
四、在宝塔面板中切换Session存储方式为Redis
该方法从根本上规避本地文件型Session产生的垃圾问题,将Session数据交由Redis内存数据库管理,自动过期、无残留文件、性能更高。
1、在宝塔面板【软件商店】中安装并启动Redis服务。
2、返回PHP设置页面,切换到【安装扩展】选项卡,确保redis扩展已启用。
3、切换到【配置修改】选项卡,在配置文件末尾新增三行:
session.save_handler = redis
session.save_path = "127.0.0.1:6379"
redis.session.locking_enabled = 0
4、保存配置并重启PHP服务。
5、执行php -r "var_dump(session_save_path());"确认返回值为Redis连接地址而非文件路径。











