“清除面板缓存”仅清理Web前端资源和面板后台缓存,不涉及PHP OPcache、Nginx代理缓存、PHP会话、日志轮转文件等运行时缓存;真正运行缓存需分层手动清理。

直接说结论:bt 命令里的“清除面板缓存”只清 Web 界面的前端资源(如 JS/CSS),对运行时产生的 Python 缓存、Nginx 临时文件、PHP OPcache、日志轮转残留等完全无效——这不是“彻底清理”,甚至不算“运行缓存”。
为什么 bt 的“清除面板缓存”选项没用
这个选项实际执行的是 /www/server/panel/pyenv/bin/python /www/server/panel/class/panelPlugin.py clear_cache,它只做三件事:
- 删除
/www/server/panel/data/cache.db(面板后台菜单/插件状态缓存) - 清空
/www/server/panel/static/js/和/www/server/panel/static/css/下的版本哈希文件(用于强制前端刷新) - 重启
bt进程(supervisor管理的panel服务)
它不碰:/tmp 下的 PHP 会话、/www/wwwlogs 中滚动的日志、/www/server/php/*/var/opcache/、/www/server/nginx/proxy_temp、Python 的 __pycache__,更不会清理 MySQL 查询缓存或 Redis 数据。
真正要清的运行缓存有哪些位置
宝塔运行中积累的“运行缓存”分散在多个层级,需分场景处理:
-
PHP 运行缓存:检查
opcache.enable=1时,缓存位于/www/server/php/{版本}/var/opcache/,但不能手动删——需执行php -r "opcache_reset();"或重启 PHP-FPM -
Nginx 代理缓存:若启用
proxy_cache,路径通常是/www/server/nginx/proxy_cache_path/,清空前先确认配置中proxy_cache_path指向哪,再rm -rf /www/server/nginx/proxy_cache_path/* -
临时上传与会话:
/tmp下的php*文件、/www/server/php/*/var/session/,可安全清理(确保无正在上传的请求) -
日志轮转残留:
/www/wwwlogs/*.log.*.gz和/www/wwwlogs/*.log.[0-9]常年堆积,用find /www/wwwlogs -name "*.log.*" -mtime +30 -delete控制周期
终端一行命令快速清理(谨慎执行)
以下命令组合覆盖高频缓存点,**执行前请确认无正在处理的请求**:
sudo systemctl stop php-fpm nginx && \ sudo rm -f /tmp/php* /www/server/php/*/var/session/* && \ sudo find /www/server/nginx/proxy_cache_path -mindepth 1 -delete 2>/dev/null || true && \ sudo find /www/wwwlogs -name "*.log.*" -mtime +7 -delete && \ sudo systemctl start nginx php-fpm
说明:
-
systemctl stop是必须的——Nginx 代理缓存和 PHP 会话文件被进程占用时无法安全删除 -
proxy_cache_path清理加了2>/dev/null || true,避免路径不存在时报错中断 - 日志只删 7 天前的,防止误删当天调试日志
- 不碰
/www/server/panel下任何 Python 字节码(如__pycache__),因为宝塔主程序依赖它们,删了会导致bt命令报ImportError
真正的“彻底”取决于你定义的范围:面板界面缓存?Web 服务运行态?还是整台服务器的临时数据?bt 命令只是个快捷入口,它连自己 Python 进程的 .pyc 都不清理,别指望它解决运行瓶颈。










