宝塔面板环境效果
Ubuntu 23.04 中的新功能
Ubuntu 23.04 附带了新的 6.2 Linux 内核,带来了许多新功能。
值得注意的 Ubuntu 内核功能:
- 支持使用通用和低延迟内核构建和运行树外Rust模块
- 较新的 LSM 堆叠和 AppArmor 补丁集
显著的内核功能:
- 通过调用深度跟踪提高旧版英特尔 Skylake CPU的性能
- 支持英特尔锐炫显卡 DG2/炼金术士
- 新的英特尔 TDX 访客驱动程序
- 支持 Sony DualShock 4 游戏手柄
- 更新了 zstd 压缩代码
- 其他 BPF 改进
- 新的硬件支持,各种性能和安全性改进
Python3 已更新至 v3.11
Python 3.11 新特性
- 更好的错误信息提示:错误提示信息更加准确
- 支持抛出抛出异常组:需要使用except*进行捕获
- 增加内置支持toml格式解析:从文件读取和字符串中读取
- 性能提升:Python 3.11 比 Python 3.10 快10-60%
宝塔面板官方Shell部署脚本修改
宝塔面板官方Ubuntu部署脚本https://download.bt.cn/install/install-ubuntu_6.0.sh
1、修改python_bin属性值(必须)
使用文本编辑器(记事本、VScode等)打开,按下Ctrl+F组合键搜索 python_bin 。
将python_bin属性值修改成python3,方便脚本调用系统自带的python解释器。
2、全文替换apt-get(可忽略)
apt安装包时显示进度条,按下Ctrl+H组合键搜索 apt-get,全文替换成apt。
3、跳过防火墙设置(可忽略)
按下Ctrl+F组合键搜索 Set_Firewall,在Install_Main()函数中。用#注释Set_Firewall就可以跳过防火墙设置。
4、设置宝塔面板的Python运行环境(核心)
(1)按下Ctrl+F组合键搜索Install_Python_Lib()函数,这里面是宝塔运行的python环境搭建。
官方脚本中的python3.7是源码编译,特别消耗时间,还不能利用系统自带的python环境。
将Install_Python_Lib()函数全部替换成以下代码。(官方代码臃肿)
Install_Python_Lib(){
#宝塔面板主目录
pyenv_path="/www/server/panel"
#检查是否存在Python虚拟环境目录(用于重装面板检查)
if [ -d $pyenv_path/pyenv ];then
#删除原有的python虚拟环境
rm -rf $pyenv_path/pyenv
fi
#检查是否存在宝塔面板主目录
if [ ! -d $pyenv_path/pyenv ];then
#若不存在,则创建文件夹
mkdir -p $pyenv_path
fi
#检查写权限
echo "True" > /www/disk.pl
if [ ! -w /www/disk.pl ];then
Red_Error "ERROR: Install python env fielded." "ERROR: /www目录无法写入,请检查目录/用户/磁盘权限!"
else
rm -f /www/disk.pl
fi
#安装python3依赖
apt install python3 python3-venv python3-dev -y
#设置python虚拟环境
python3 -m venv $pyenv_path/pyenv
#进入python虚拟环境
source $pyenv_path/pyenv/bin/activate
#设置pip镜像源
#1、手动设置(清华源)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
#2、脚本优选
# curl -Ss --connect-timeout 3 -m 60 $download_Url/install/pip_select.sh|bash
#安装宝塔运行的python第三方依赖库
pip install wheel
pip install pip-review
wget -O pip-packs.txt $download_Url/install/pyenv/pip-packs.txt
pip install -r pip-packs.txt
rm -f pip-packs.txt
#pip一键更新全部包
pip-review --auto
}
效果图:
(2)按下Ctrl+H组合键搜索 /www/server/panel/pyenv/bin/pip3,全文替换成pip。
(3)按下Ctrl+H组合键搜索 btpip,全文替换成pip。
(4)按下Ctrl+H组合键搜索 btpython,全文替换成python3。
(5)按下Ctrl+H组合键搜索 python3.7,全文删除(全文替换成空)。
5、设置系统ntp服务(可忽略)
方便查看系统日志时间, 按下Ctrl+F组合键搜索 Install_Deb_Pack(),在函数体中直接加入。
#设置时区
timedatectl set-timezone Asia/Shanghai
#设置NTP同步服务器(阿里云、腾讯云、清华源)
cat > /etc/systemd/timesyncd.conf <<EOF
[Time]
NTP=ntp.alyun.com
FallbackNTP=ntp.tencent.com,ntp.tuna.tsinghua.edu.cn
RootDistanceMaxSec=5
PollIntervalMinSec=32
PollIntervalMaxSec=2048
ConnectionRetrySec=30
SaveIntervalSec=60
EOF
#重启时间服务
service systemd-timesyncd restart
效果图:
6、面板报错解决
(1)Flask v2.3+已弃用“session_cookie_name”属性
解决方法:按下Ctrl+F组合键搜索 Set_Bt_Panel() 函数,在函数体结尾处(Set_Firewall()函数前)添加以下代码。
#获取flask版本
flask_version=$(pip show flask | grep 'Version:' | grep -Eo '[0-9]+\.[0-9]+')
if [ $flask_version == "2.3" ];then
#将已弃用的 app.session_cookie_name 替换为 app.config['SESSION_COOKIE_NAME']
sed -i "s/app\.session_cookie_name/app.config['SESSION_COOKIE_NAME']/g" /www/server/panel/class/flask_session/sessions.py
fi
效果图:
(2)public.PanelError: 面板运行时发生错误: 解析软件
解决方法:到面板设置中绑定宝塔用户,系统会从官网获取数据生成/www/server/panel/data/userInfo.json(建议另存,方便以后重装面板和系统直接替换)。