【已修复】php探针BUG
相关错误求助贴https://www.bt.cn/bbs/thread-155475-1-1.html
https://www.bt.cn/bbs/thread-155467-1-1.html
一、错误现象宝塔面板运行时报错,核心异常为:
UnboundLocalError: local variable 'name' referenced before assignment即:局部变量 name 在赋值前被引用。
请求信息摘要:
REQUEST_DATE: 2026-08-10 02:22:27VERSION: Debian GNU/Linux 12 (bookworm) x86_64(Py3.7.16) - 13.0.0REMOTE_ADDR: x.x.x.xREQUEST_URI: POST /ajax?action=php_infoREQUEST_FORM: {'php_version': '85'}USER_AGENT: Mozilla/5.0 ... Edge/151.0.0.0关键堆栈:
File "/www/server/panel/BTPanel/__init__.py", line 2578, in publicObject res = run_obj.run(toObject, defs, get)File "/www/server/panel/BTPanel/__init__.py", line 2524, in run result = getattr(toObject, get.action)(get)File "/www/server/panel/class/ajax.py", line 2055, in php_info infos = os.listdir(php_path)UnboundLocalError: local variable 'name' referenced before assignment报错位置:
/www/server/panel/class/ajax.py 第 2055 行附近二、问题原因在 ajax.py 的 php_info() 方法中,变量 name 可能在某些分支下没有提前定义,但后续又被使用,导致 Python 抛出:
UnboundLocalError: local variable 'name' referenced before assignment从截图里的修复代码看,问题出在类似下面这段逻辑:
def php_info(self, args): php_version = args.php_version.replace('.', '') php_path = '/www/server/php/' name = php_path # 增加此行 if public.get_webserver() == 'openlitespeed': php_path = '/usr/local/lsws/' name = 'lsphp' + php_version也就是说,需要在使用 name 前先给 name 一个默认初始值。
三、解决方法修改文件:
/www/server/panel/class/ajax.py找到 php_info 函数,大约在第 2050 行附近。
name = php_version #增加这一行
2050行增加一行,name = php_version 您好,非常感谢您的反馈与支持!
您反馈的此问题已经修复,首页右上角修复下面板即可解决.
页:
[1]