Ubuntu和CentOS的步骤基本一致,主要区别在于包管理工具(apt 代替 yum)和Python 3.9的安装方式。Ubuntu 20.04及更新版本通常自带Python 3.8/3.10,但既然你指定需要3.9,我们可以用更简单的 deadsnakes PPA方式来安装。

 

第一步:在Ubuntu上安装Python 3.9

方法一:使用deadsnakes PPA(推荐,最简单)

 

bash

# 更新包列表

sudo apt update

# 安装依赖,让系统支持添加PPA

sudo apt install -y software-properties-common

# 添加deadsnakes PPA(这个源提供了多个Python版本)

sudo add-apt-repository ppa:deadsnakes/ppa

# 再次更新

sudo apt update

# 安装Python 3.9及其开发工具、pip和venv

sudo apt install -y python3.9 python3.9-dev python3.9-venv python3.9-distutils

# 安装pip(如果上面没有自动装好)

curl -sS https://bootstrap.pypa.io/get-pip.py | python3.9

方法二:源码编译安装(如果PPA不可用)

如果因网络原因无法使用PPA,也可以源码编译,步骤和CentOS类似:

 

bash

sudo apt update

sudo apt install -y build-essential libssl-dev zlib1g-dev libncurses5-dev \

    libnss3-dev libsqlite3-dev libreadline-dev libffi-dev curl wget

 

cd /usr/src

sudo wget https://www.python.org/ftp/python/3.9.18/Python-3.9.18.tgz

sudo tar xzf Python-3.9.18.tgz

cd Python-3.9.18

sudo ./configure --enable-optimizations

sudo make altinstall

验证安装

 

bash

python3.9 --version

应该输出 Python 3.9.x。

 

第二步:准备项目的Python环境

这步和CentOS完全一样,进入项目目录创建虚拟环境:

 

bash

cd /home/wwwroot/b2b_cs/backend

python3.9 -m venv venv

source venv/bin/activate

pip install -r requirements.txt   # 如果有依赖文件

# 或单独安装需要的包

deactivate

第三步:使用systemd配置开机自启

Ubuntu从16.04开始就全面使用systemd了,步骤和CentOS一致,只是服务文件的路径相同 /etc/systemd/system/。

 

创建服务文件

 

bash

sudo nano /etc/systemd/system/b2b-cs.service

写入以下内容(注意修改关键参数)

 

ini

[Unit]

Description=B2B CS Backend Python Service

After=network.target

 

[Service]

Type=simple

# 重要:建议使用非root用户,例如ubuntu或www-data

User=ubuntu

Group=ubuntu

WorkingDirectory=/home/wwwroot/b2b_cs/backend

# 使用虚拟环境中的Python

ExecStart=/home/wwwroot/b2b_cs/backend/venv/bin/python /home/wwwroot/b2b_cs/backend/your_main_script.py

Restart=always

RestartSec=5

StandardOutput=journal

StandardError=journal

 

[Install]

WantedBy=multi-user.target

注意:把 User=ubuntu 改成你实际登录的用户名(可用 whoami 查看),your_main_script.py 改成你的主程序文件名(比如 app.py 或 main.py)。

 

启动并启用服务

 

bash

sudo systemctl daemon-reload

sudo systemctl start b2b-cs

sudo systemctl enable b2b-cs

第四步:管理和监控服务

bash

# 查看运行状态

sudo systemctl status b2b-cs

 

# 查看实时日志(方便调试)

sudo journalctl -u b2b-cs -f

 

# 如果修改了代码,重启服务

sudo systemctl restart b2b-cs