Compare commits

..

1 Commits

Author SHA1 Message Date
41bbdabf5b docs(README): 添加 FastAPI项目安装和配置指南
- 更新系统和安装依赖
- 安装 Python 3.11- 配置 Python 虚拟环境
- 安装和配置 MySQL
- 导入 fastapi.sql 数据文件
- 配置 Nginx 反向代理
- 启动和运行 FastAPI 项目
2025-07-01 23:48:27 +08:00

468
README.md Normal file
View File

@@ -0,0 +1,468 @@
## 安装 `python3.11`
### 一、Linux 安装 Python 3.11
#### 1. 更新系统和安装依赖
```bash
sudo apt update
sudo apt install -y software-properties-common
```
#### 2. 添加 Python 3.11 PPA 源Ubuntu
```bash
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
```
#### 3. 安装 Python 3.11
```bash
sudo apt install -y python3.11 python3.11-venv python3.11-dev
```
#### 4. 确认安装版本
```bash
python3.11 --version
```
#### 5. 设置 Python 3.11 为默认版本(可选)
> 如果需要将 Python 3.11 设置为系统默认 Python3 版本:
```bash
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
```
### 二、Windows 安装 Python 3.11
#### 1. 下载 Python 3.11
- 前往 [Python 官方下载页面](https://www.python.org/downloads/release/python-3110/)。
- 选择 Windows 安装程序Installer并下载适合的版本32位或64位
#### 2. 运行安装程序
- 双击下载的 `.exe` 文件,启动安装程序。
- 勾选 **“Add Python 3.11 to PATH”**,以便系统能够识别 Python 命令。
- 选择 **“Customize installation”** 以进行自定义安装。
- 点击 **“Install”** 开始安装。
#### 3. 确认安装
- 在命令提示符Command Prompt或 PowerShell 中输入以下命令检查安装是否成功:
```cmd
python --version
```
---
## 配置 Python 虚拟环境
### 1. Linux 环境
- **创建虚拟环境**
```shell
python3 -m venv 虚拟环境名称
```
- **启动虚拟环境**
```shell
source 虚拟环境名称/bin/activate
```
- **安装 Python 依赖**
```shell
pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple -r ./requirements.txt
```
### 2. Windows 环境
- **创建虚拟环境**
```shell
python -m venv 虚拟环境名称
```
- **启动虚拟环境**
```shell
.\虚拟环境名称\Scripts\activate
```
- **安装 Python 依赖**
```shell
pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple -r ./requirements.txt
```
## MySQL 的安装和配置说明。
### 1. 在 Linux 上安装 MySQL
- **步骤 1**: 更新包列表并安装 MySQL 服务器
```shell
sudo apt update
sudo apt install mysql-server -y
```
- **步骤 2**: 启动 MySQL 服务并设置为开机启动
```shell
sudo systemctl start mysql
sudo systemctl enable mysql
```
- **步骤 3**: 安全配置 MySQL
```shell
sudo mysql_secure_installation
```
按照提示配置 root 密码,移除匿名用户,禁止 root 远程登录,删除测试数据库等。
- **步骤 4**: 登录 MySQL 并创建数据库和用户
```shell
sudo mysql -u root -p
```
使用以下命令创建数据库和用户并赋予权限:
```sql
CREATE DATABASE 数据库名称 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER '用户名'@'%' IDENTIFIED BY '用户密码';
GRANT ALL PRIVILEGES ON 数据库名称.* TO '用户名'@'%';
FLUSH PRIVILEGES;
```
- **步骤 5**: 配置 MySQL 远程访问(如有需要)
修改 MySQL 配置文件 `/etc/mysql/mysql.conf.d/mysqld.cnf`,将 `bind-address` 设置为 `0.0.0.0`
```ini
bind-address = 0.0.0.0
```
保存并重启 MySQL 服务:
```shell
sudo systemctl restart mysql
```
### 2. 在 Windows 上安装 MySQL
- **步骤 1**: 下载并安装 MySQL
- 前往 [MySQL 官网下载](https://dev.mysql.com/downloads/installer/),选择适合的版本进行下载。
- 安装时可选择默认安装路径,并勾选 MySQL Server 和 MySQL Workbench 等工具。
- **步骤 2**: 配置 MySQL
- 在安装向导中,设置 root 用户的密码,并选择 MySQL 配置(建议选择开发者配置)。
- 设置端口(默认 3306和字符集为 `utf8mb4`。
- **步骤 3**: 配置环境变量(可选)
- 打开 Windows 环境变量设置,将 MySQL 安装目录的 `bin` 文件夹路径(如 `C:\Program Files\MySQL\MySQL Server 8.0\bin`)添加到 `Path` 中,以便在命令行直接使用 `mysql` 命令。
- **步骤 4**: 登录 MySQL 并创建数据库和用户
使用命令行工具登录 MySQL并按照以下命令创建数据库和用户
```shell
mysql -u root -p
```
```sql
CREATE DATABASE 数据库名称 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER '用户名'@'localhost' IDENTIFIED BY '用户密码';
GRANT ALL PRIVILEGES ON 数据库名称.* TO '用户名'@'localhost';
FLUSH PRIVILEGES;
```
```
### 4. 验证数据库连接
- **配置完成后,可以在 FastAPI 项目中测试 MySQL 数据库连接,确保连接配置正确。**
---
## 导入 `fastapi.sql` 数据文件。
- 在 MySQL 配置完成后,可以将项目的初始数据通过 `fastapi.sql` 文件导入到数据库中。
### 1. 在 Linux 上导入 `fastapi.sql` 数据
- **步骤 1**: 登录到 MySQL
```shell
mysql -u 用户名 -p
```
系统会提示输入密码,输入后进入 MySQL 命令行。
- **步骤 2**: 使用 `source` 命令导入数据
在 MySQL 命令行中,选择目标数据库并导入 `fastapi.sql` 文件:
```sql
USE 数据库名称;
SOURCE /path/to/fastapi.sql;
```
确保 `fastapi.sql` 文件路径正确,数据将被导入指定的数据库。
- **步骤 3**: 验证导入
导入完成后,可以执行一些简单查询来验证数据是否导入成功:
```sql
SELECT * FROM 表名称 LIMIT 5;
```
### 2. 在 Windows 上导入 `fastapi.sql` 数据
- **步骤 1**: 打开命令提示符并登录到 MySQL
打开命令提示符CMD并运行以下命令
```shell
mysql -u 用户名 -p
```
输入密码后进入 MySQL 命令行。
- **步骤 2**: 使用 `source` 命令导入数据
在 MySQL 命令行中,先选择数据库,然后导入 `fastapi.sql` 文件:
```sql
USE 数据库名称;
SOURCE C:\\path\\to\\fastapi.sql;
```
注意Windows 系统中路径使用双反斜杠 `\\`。
- **步骤 3**: 验证导入
导入完成后,可以使用简单的查询语句检查数据是否导入成功:
```sql
SELECT * FROM 表名称 LIMIT 5;
```
### 3. 使用命令直接导入 `fastapi.sql` 文件
- 对于一些简单情况,可以直接在命令行中使用以下方式导入,无需进入 MySQL 命令行。
- **通用方法**
```shell
mysql -u 用户名 -p 数据库名称 < /path/to/fastapi.sql
```
这种方法适用于 Linux 和 Windows 系统,路径需根据操作系统设置正确的格式。
### 注意事项
- 确保 `fastapi.sql` 文件中的表结构与目标数据库一致,以避免导入错误。
- 如果数据库中已有相同数据,请谨慎操作,避免数据冲突或重复。
---
## Nginx配置
### Linux 版本
1. **安装 Nginx**
在 Linux 上,使用以下命令安装 Nginx
```shell
sudo apt update
sudo apt install nginx
```
2. **创建 FastAPI 反向代理配置**
打开或创建 Nginx 配置文件,例如 `/etc/nginx/sites-available/fastapi.conf`
```nginx
server {
listen 80;
server_name example.com; # 替换为您的域名或服务器 IP
# 日志路径
access_log /var/log/nginx/fastapi_access.log;
error_log /var/log/nginx/fastapi_error.log;
# 文件上传大小限制为 1024MB
client_max_body_size 1024M;
location / {
root /var/www/html/; # 替换为您的项目根目录
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /api/ {
# 如果后端在本地比如127.0.0.1或者localhost请解开下面的rewrite注释即可
rewrite ^.+api/?(.*)$ /$1 break;
# 这里填写后端地址(后面一定不要忘记添加 /
proxy_pass http://127.0.0.1:9090/;
proxy_set_header Host $host;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect default;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers *;
add_header Access-Control-Allow-Methods *;
}
}
```
3. **启用配置**
- 将配置文件链接到 `sites-enabled`
```shell
sudo ln -s /etc/nginx/sites-available/fastapi.conf /etc/nginx/sites-enabled/
```
- 检查配置文件是否有错误:
```shell
sudo nginx -t
```
- 重启 Nginx 以应用配置:
```shell
sudo systemctl reload nginx
```
4. **验证配置**
在浏览器中访问 `http://example.com`,确保 FastAPI 应用能够正常访问并支持 1GB 文件上传。
### Windows 版本
1. **安装 Nginx**
- 下载 Nginx Windows 版本:[Nginx 官方网站](https://nginx.org/en/download.html)。
- 解压后,将 Nginx 文件夹放置在您选择的目录(例如 `C:\nginx`)。
2. **创建 FastAPI 配置**
打开 `C:\nginx\conf\nginx.conf` 文件,在 `http` 块中添加以下配置:
```nginx
http {
include mime.types;
default_type application/octet-stream;
# 日志路径
access_log logs/fastapi_access.log;
error_log logs/fastapi_error.log;
# 客户端最大文件上传大小限制为 1024MB
client_max_body_size 1024M;
server {
listen 80;
server_name localhost; # 或替换为您的服务器 IP
location / {
root /var/www/html/; # 替换为您的项目根目录
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /api/ {
# 如果后端在本地比如127.0.0.1或者localhost请解开下面的rewrite注释即可
rewrite ^.+api/?(.*)$ /$1 break;
# 这里填写后端地址(后面一定不要忘记添加 /
proxy_pass http://127.0.0.1:9090/;
proxy_set_header Host $host;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect default;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers *;
add_header Access-Control-Allow-Methods *;
}
}
}
```
3. **启动 Nginx**
- 打开命令提示符,进入 Nginx 目录并启动服务:
```shell
cd C:\nginx
nginx.exe
```
4. **验证配置**
在浏览器中访问 `http://localhost`,检查 FastAPI 应用是否可用并支持 1GB 文件上传。
### 可选的 SSL 配置
- 若需要在 Linux 系统上启用 HTTPS 和 SSL 证书,请参考 [Lets Encrypt](https://letsencrypt.org/) 或其他 SSL 提供商的文档,使用类似以下的配置:
```nginx
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
client_max_body_size 1024M;
location / {
root /var/www/html/; # 替换为您的项目根目录
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /api/ {
# 如果后端在本地比如127.0.0.1或者localhost请解开下面的rewrite注释即可
rewrite ^.+api/?(.*)$ /$1 break;
# 这里填写后端地址(后面一定不要忘记添加 /
proxy_pass http://127.0.0.1:9090/;
proxy_set_header Host $host;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect default;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers *;
add_header Access-Control-Allow-Methods *;
}
}
```
---
## 启动运行
### 1. 进入项目目录并激活虚拟环境
#### Linux
```shell
# 进入项目目录
cd /path/to/your/project
# 激活虚拟环境
source venv/bin/activate
```
#### Windows
```shell
# 进入项目目录
cd \path\to\your\project
# 激活虚拟环境
.\venv\Scripts\activate
```
### 2. 启动 FastAPI 项目
```shell
python app.py
```
### 3. 停止项目
在命令行中按下 `Ctrl + C` 以停止运行中的 FastAPI 项目。
### 备注
- 运行项目时,请确保虚拟环境已正确激活,以避免 Python 库路径错误。
- 如果 Nginx 已配置为反向代理,则可以直接访问 Nginx 设置的域名或 IP。