691 lines
14 KiB
Markdown
691 lines
14 KiB
Markdown
|
|
# 🚀 AI 女友项目部署指南
|
|||
|
|
|
|||
|
|
## 📋 项目架构
|
|||
|
|
|
|||
|
|
- **PHP 后端**:FastAdmin + ThinkPHP(用户管理、基础功能)
|
|||
|
|
- **Python 后端**:FastAPI(AI 功能、唱歌、跳舞等)
|
|||
|
|
- **前端**:uni-app(H5/小程序/APP)
|
|||
|
|
- **数据库**:MySQL
|
|||
|
|
- **文件存储**:阿里云 OSS
|
|||
|
|
|
|||
|
|
## 🖥️ 服务器要求
|
|||
|
|
|
|||
|
|
### 最低配置
|
|||
|
|
- CPU: 2核
|
|||
|
|
- 内存: 4GB
|
|||
|
|
- 硬盘: 40GB
|
|||
|
|
- 带宽: 5Mbps
|
|||
|
|
|
|||
|
|
### 推荐配置
|
|||
|
|
- CPU: 4核
|
|||
|
|
- 内存: 8GB
|
|||
|
|
- 硬盘: 100GB
|
|||
|
|
- 带宽: 10Mbps
|
|||
|
|
|
|||
|
|
### 操作系统
|
|||
|
|
- Ubuntu 20.04/22.04 LTS(推荐)
|
|||
|
|
- CentOS 7/8
|
|||
|
|
- Debian 10/11
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📦 第一步:准备服务器环境
|
|||
|
|
|
|||
|
|
### 1.1 更新系统
|
|||
|
|
```bash
|
|||
|
|
# Ubuntu/Debian
|
|||
|
|
sudo apt update && sudo apt upgrade -y
|
|||
|
|
|
|||
|
|
# CentOS
|
|||
|
|
sudo yum update -y
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 1.2 安装必要软件
|
|||
|
|
```bash
|
|||
|
|
# Ubuntu/Debian
|
|||
|
|
sudo apt install -y git curl wget vim unzip
|
|||
|
|
|
|||
|
|
# CentOS
|
|||
|
|
sudo yum install -y git curl wget vim unzip
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🐘 第二步:安装 PHP 环境
|
|||
|
|
|
|||
|
|
### 2.1 安装 PHP 8.0
|
|||
|
|
```bash
|
|||
|
|
# Ubuntu/Debian
|
|||
|
|
sudo apt install -y software-properties-common
|
|||
|
|
sudo add-apt-repository ppa:ondrej/php -y
|
|||
|
|
sudo apt update
|
|||
|
|
sudo apt install -y php8.0 php8.0-fpm php8.0-mysql php8.0-xml php8.0-mbstring \
|
|||
|
|
php8.0-curl php8.0-zip php8.0-gd php8.0-bcmath php8.0-json
|
|||
|
|
|
|||
|
|
# CentOS
|
|||
|
|
sudo yum install -y epel-release
|
|||
|
|
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
|
|||
|
|
sudo yum module reset php -y
|
|||
|
|
sudo yum module enable php:remi-8.0 -y
|
|||
|
|
sudo yum install -y php php-fpm php-mysql php-xml php-mbstring \
|
|||
|
|
php-curl php-zip php-gd php-bcmath php-json
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2.2 配置 PHP
|
|||
|
|
```bash
|
|||
|
|
# 编辑 php.ini
|
|||
|
|
sudo vim /etc/php/8.0/fpm/php.ini
|
|||
|
|
|
|||
|
|
# 修改以下配置
|
|||
|
|
upload_max_filesize = 100M
|
|||
|
|
post_max_size = 100M
|
|||
|
|
max_execution_time = 300
|
|||
|
|
memory_limit = 256M
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2.3 启动 PHP-FPM
|
|||
|
|
```bash
|
|||
|
|
# Ubuntu/Debian
|
|||
|
|
sudo systemctl start php8.0-fpm
|
|||
|
|
sudo systemctl enable php8.0-fpm
|
|||
|
|
|
|||
|
|
# CentOS
|
|||
|
|
sudo systemctl start php-fpm
|
|||
|
|
sudo systemctl enable php-fpm
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🐍 第三步:安装 Python 环境
|
|||
|
|
|
|||
|
|
### 3.1 安装 Python 3.10+
|
|||
|
|
```bash
|
|||
|
|
# Ubuntu/Debian
|
|||
|
|
sudo apt install -y python3.10 python3.10-venv python3-pip
|
|||
|
|
|
|||
|
|
# CentOS
|
|||
|
|
sudo yum install -y python3 python3-pip python3-devel
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3.2 创建虚拟环境
|
|||
|
|
```bash
|
|||
|
|
cd /var/www/AI_GirlFriend
|
|||
|
|
python3 -m venv venv
|
|||
|
|
source venv/bin/activate
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3.3 安装 Python 依赖
|
|||
|
|
```bash
|
|||
|
|
cd lover
|
|||
|
|
pip install -r requirements.txt
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🗄️ 第四步:安装和配置 MySQL
|
|||
|
|
|
|||
|
|
### 4.1 安装 MySQL 8.0
|
|||
|
|
```bash
|
|||
|
|
# Ubuntu/Debian
|
|||
|
|
sudo apt install -y mysql-server
|
|||
|
|
|
|||
|
|
# CentOS
|
|||
|
|
sudo yum install -y mysql-server
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4.2 启动 MySQL
|
|||
|
|
```bash
|
|||
|
|
sudo systemctl start mysql
|
|||
|
|
sudo systemctl enable mysql
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4.3 安全配置
|
|||
|
|
```bash
|
|||
|
|
sudo mysql_secure_installation
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4.4 创建数据库和用户
|
|||
|
|
```bash
|
|||
|
|
sudo mysql -u root -p
|
|||
|
|
|
|||
|
|
# 在 MySQL 中执行
|
|||
|
|
CREATE DATABASE fastadmin CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|||
|
|
CREATE USER 'aiuser'@'localhost' IDENTIFIED BY '你的强密码';
|
|||
|
|
GRANT ALL PRIVILEGES ON fastadmin.* TO 'aiuser'@'localhost';
|
|||
|
|
FLUSH PRIVILEGES;
|
|||
|
|
EXIT;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4.5 导入数据库
|
|||
|
|
```bash
|
|||
|
|
# 导入 PHP 后端数据库
|
|||
|
|
mysql -u aiuser -p fastadmin < 归档/xunifriend.sql
|
|||
|
|
|
|||
|
|
# 执行音乐库迁移
|
|||
|
|
mysql -u aiuser -p fastadmin < lover/migrations/add_music_library.sql
|
|||
|
|
|
|||
|
|
# 执行邀请码功能迁移
|
|||
|
|
mysql -u aiuser -p fastadmin < lover/migrations/add_invite_fields.sql
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🌐 第五步:安装和配置 Nginx
|
|||
|
|
|
|||
|
|
### 5.1 安装 Nginx
|
|||
|
|
```bash
|
|||
|
|
# Ubuntu/Debian
|
|||
|
|
sudo apt install -y nginx
|
|||
|
|
|
|||
|
|
# CentOS
|
|||
|
|
sudo yum install -y nginx
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 5.2 创建 Nginx 配置
|
|||
|
|
```bash
|
|||
|
|
sudo vim /etc/nginx/sites-available/aigirlfriend
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 5.3 Nginx 配置内容
|
|||
|
|
```nginx
|
|||
|
|
# PHP 后端配置
|
|||
|
|
server {
|
|||
|
|
listen 30100;
|
|||
|
|
server_name your-domain.com; # 改为你的域名或 IP
|
|||
|
|
|
|||
|
|
root /var/www/AI_GirlFriend/xunifriend_RaeeC/public;
|
|||
|
|
index index.php index.html;
|
|||
|
|
|
|||
|
|
# 日志
|
|||
|
|
access_log /var/log/nginx/php_access.log;
|
|||
|
|
error_log /var/log/nginx/php_error.log;
|
|||
|
|
|
|||
|
|
# PHP 处理
|
|||
|
|
location / {
|
|||
|
|
try_files $uri $uri/ /index.php?$query_string;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
location ~ \.php$ {
|
|||
|
|
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
|
|||
|
|
fastcgi_index index.php;
|
|||
|
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
|||
|
|
include fastcgi_params;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 静态文件
|
|||
|
|
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2|ttf|eot)$ {
|
|||
|
|
expires 30d;
|
|||
|
|
add_header Cache-Control "public, immutable";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 禁止访问隐藏文件
|
|||
|
|
location ~ /\. {
|
|||
|
|
deny all;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# Python 后端配置
|
|||
|
|
server {
|
|||
|
|
listen 30101;
|
|||
|
|
server_name your-domain.com; # 改为你的域名或 IP
|
|||
|
|
|
|||
|
|
# 日志
|
|||
|
|
access_log /var/log/nginx/python_access.log;
|
|||
|
|
error_log /var/log/nginx/python_error.log;
|
|||
|
|
|
|||
|
|
# 反向代理到 Python 应用
|
|||
|
|
location / {
|
|||
|
|
proxy_pass http://127.0.0.1:8000;
|
|||
|
|
proxy_set_header Host $host;
|
|||
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|||
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|||
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|||
|
|
|
|||
|
|
# WebSocket 支持
|
|||
|
|
proxy_http_version 1.1;
|
|||
|
|
proxy_set_header Upgrade $http_upgrade;
|
|||
|
|
proxy_set_header Connection "upgrade";
|
|||
|
|
|
|||
|
|
# 超时设置
|
|||
|
|
proxy_connect_timeout 300s;
|
|||
|
|
proxy_send_timeout 300s;
|
|||
|
|
proxy_read_timeout 300s;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 静态文件(如果有)
|
|||
|
|
location /static/ {
|
|||
|
|
alias /var/www/AI_GirlFriend/lover/static/;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 5.4 启用配置
|
|||
|
|
```bash
|
|||
|
|
# Ubuntu/Debian
|
|||
|
|
sudo ln -s /etc/nginx/sites-available/aigirlfriend /etc/nginx/sites-enabled/
|
|||
|
|
sudo nginx -t
|
|||
|
|
sudo systemctl restart nginx
|
|||
|
|
|
|||
|
|
# CentOS
|
|||
|
|
sudo cp /etc/nginx/sites-available/aigirlfriend /etc/nginx/conf.d/aigirlfriend.conf
|
|||
|
|
sudo nginx -t
|
|||
|
|
sudo systemctl restart nginx
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📁 第六步:上传项目文件
|
|||
|
|
|
|||
|
|
### 6.1 创建项目目录
|
|||
|
|
```bash
|
|||
|
|
sudo mkdir -p /var/www/AI_GirlFriend
|
|||
|
|
sudo chown -R $USER:$USER /var/www/AI_GirlFriend
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 6.2 上传文件(使用 Git 或 FTP)
|
|||
|
|
|
|||
|
|
**方法 1:使用 Git**
|
|||
|
|
```bash
|
|||
|
|
cd /var/www
|
|||
|
|
git clone https://your-repo-url.git AI_GirlFriend
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**方法 2:使用 SCP**
|
|||
|
|
```bash
|
|||
|
|
# 在本地电脑执行
|
|||
|
|
scp -r C:\Users\Administrator\Desktop\Project\AI_GirlFriend user@server-ip:/var/www/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**方法 3:使用 FTP 工具**
|
|||
|
|
- 使用 FileZilla 或 WinSCP
|
|||
|
|
- 上传整个项目文件夹
|
|||
|
|
|
|||
|
|
### 6.3 设置权限
|
|||
|
|
```bash
|
|||
|
|
cd /var/www/AI_GirlFriend
|
|||
|
|
|
|||
|
|
# PHP 项目权限
|
|||
|
|
sudo chown -R www-data:www-data xunifriend_RaeeC/
|
|||
|
|
sudo chmod -R 755 xunifriend_RaeeC/
|
|||
|
|
sudo chmod -R 777 xunifriend_RaeeC/runtime/
|
|||
|
|
sudo chmod -R 777 xunifriend_RaeeC/public/uploads/
|
|||
|
|
|
|||
|
|
# Python 项目权限
|
|||
|
|
sudo chown -R $USER:$USER lover/
|
|||
|
|
sudo chmod -R 755 lover/
|
|||
|
|
sudo mkdir -p public/tts public/music
|
|||
|
|
sudo chmod -R 777 public/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## ⚙️ 第七步:配置环境变量
|
|||
|
|
|
|||
|
|
### 7.1 配置 PHP 后端
|
|||
|
|
```bash
|
|||
|
|
cd /var/www/AI_GirlFriend/xunifriend_RaeeC
|
|||
|
|
|
|||
|
|
# 编辑数据库配置
|
|||
|
|
vim application/database.php
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
修改数据库配置:
|
|||
|
|
```php
|
|||
|
|
return [
|
|||
|
|
'type' => 'mysql',
|
|||
|
|
'hostname' => '127.0.0.1',
|
|||
|
|
'database' => 'fastadmin',
|
|||
|
|
'username' => 'aiuser',
|
|||
|
|
'password' => '你的数据库密码',
|
|||
|
|
'hostport' => '3306',
|
|||
|
|
'charset' => 'utf8mb4',
|
|||
|
|
];
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 7.2 配置 Python 后端
|
|||
|
|
```bash
|
|||
|
|
cd /var/www/AI_GirlFriend/lover
|
|||
|
|
|
|||
|
|
# 创建 .env 文件
|
|||
|
|
vim .env
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
.env 文件内容:
|
|||
|
|
```env
|
|||
|
|
# 应用配置
|
|||
|
|
APP_ENV=production
|
|||
|
|
DEBUG=False
|
|||
|
|
|
|||
|
|
# 数据库配置
|
|||
|
|
DB_HOST=127.0.0.1
|
|||
|
|
DB_PORT=3306
|
|||
|
|
DB_USER=aiuser
|
|||
|
|
DB_PASSWORD=你的数据库密码
|
|||
|
|
DB_NAME=fastadmin
|
|||
|
|
|
|||
|
|
# JWT 配置
|
|||
|
|
JWT_SECRET_KEY=你的随机密钥(至少32位)
|
|||
|
|
JWT_ALGORITHM=HS256
|
|||
|
|
JWT_EXPIRE_MINUTES=43200
|
|||
|
|
|
|||
|
|
# DashScope API(阿里云通义千问)
|
|||
|
|
DASHSCOPE_API_KEY=sk-2473385fd6d54a58a703ce6b92a62074
|
|||
|
|
|
|||
|
|
# 阿里云 OSS 配置
|
|||
|
|
OSS_ACCESS_KEY_ID=LTAI5tBzjogJDx4JzRYoDyEM
|
|||
|
|
OSS_ACCESS_KEY_SECRET=43euicRkkzlLjGTYzFYkTupcW7N5w3
|
|||
|
|
OSS_BUCKET=hello12312312
|
|||
|
|
OSS_ENDPOINT=https://oss-cn-hangzhou.aliyuncs.com
|
|||
|
|
CDN_DOMAIN=https://hello12312312.oss-cn-hangzhou.aliyuncs.com
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔄 第八步:配置 Systemd 服务(Python 后端)
|
|||
|
|
|
|||
|
|
### 8.1 创建 Systemd 服务文件
|
|||
|
|
```bash
|
|||
|
|
sudo vim /etc/systemd/system/aigirlfriend-python.service
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 8.2 服务文件内容
|
|||
|
|
```ini
|
|||
|
|
[Unit]
|
|||
|
|
Description=AI GirlFriend Python Backend
|
|||
|
|
After=network.target mysql.service
|
|||
|
|
|
|||
|
|
[Service]
|
|||
|
|
Type=simple
|
|||
|
|
User=www-data
|
|||
|
|
Group=www-data
|
|||
|
|
WorkingDirectory=/var/www/AI_GirlFriend
|
|||
|
|
Environment="PATH=/var/www/AI_GirlFriend/venv/bin"
|
|||
|
|
ExecStart=/var/www/AI_GirlFriend/venv/bin/uvicorn lover.main:app --host 0.0.0.0 --port 8000 --workers 4
|
|||
|
|
Restart=always
|
|||
|
|
RestartSec=10
|
|||
|
|
|
|||
|
|
# 日志
|
|||
|
|
StandardOutput=append:/var/log/aigirlfriend-python.log
|
|||
|
|
StandardError=append:/var/log/aigirlfriend-python-error.log
|
|||
|
|
|
|||
|
|
[Install]
|
|||
|
|
WantedBy=multi-user.target
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 8.3 启动服务
|
|||
|
|
```bash
|
|||
|
|
sudo systemctl daemon-reload
|
|||
|
|
sudo systemctl start aigirlfriend-python
|
|||
|
|
sudo systemctl enable aigirlfriend-python
|
|||
|
|
sudo systemctl status aigirlfriend-python
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔥 第九步:配置防火墙
|
|||
|
|
|
|||
|
|
### 9.1 开放端口
|
|||
|
|
```bash
|
|||
|
|
# Ubuntu/Debian (UFW)
|
|||
|
|
sudo ufw allow 30100/tcp
|
|||
|
|
sudo ufw allow 30101/tcp
|
|||
|
|
sudo ufw allow 80/tcp
|
|||
|
|
sudo ufw allow 443/tcp
|
|||
|
|
sudo ufw enable
|
|||
|
|
|
|||
|
|
# CentOS (Firewalld)
|
|||
|
|
sudo firewall-cmd --permanent --add-port=30100/tcp
|
|||
|
|
sudo firewall-cmd --permanent --add-port=30101/tcp
|
|||
|
|
sudo firewall-cmd --permanent --add-port=80/tcp
|
|||
|
|
sudo firewall-cmd --permanent --add-port=443/tcp
|
|||
|
|
sudo firewall-cmd --reload
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📱 第十步:部署前端
|
|||
|
|
|
|||
|
|
### 10.1 修改 API 地址
|
|||
|
|
```bash
|
|||
|
|
cd /var/www/AI_GirlFriend/xuniYou
|
|||
|
|
vim utils/request.js
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
修改为生产环境地址:
|
|||
|
|
```javascript
|
|||
|
|
// 生产环境
|
|||
|
|
export const baseURL = 'http://your-domain.com:30100' // 或使用域名
|
|||
|
|
export const baseURLPy = 'http://your-domain.com:30101'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 10.2 编译 H5 版本
|
|||
|
|
```bash
|
|||
|
|
# 在本地开发机器上
|
|||
|
|
cd xuniYou
|
|||
|
|
npm install
|
|||
|
|
npm run build:h5
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 10.3 上传 H5 文件
|
|||
|
|
```bash
|
|||
|
|
# 将 unpackage/dist/build/h5 目录上传到服务器
|
|||
|
|
scp -r unpackage/dist/build/h5/* user@server-ip:/var/www/AI_GirlFriend/h5/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 10.4 配置 Nginx 服务 H5
|
|||
|
|
```bash
|
|||
|
|
sudo vim /etc/nginx/sites-available/aigirlfriend-h5
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
添加配置:
|
|||
|
|
```nginx
|
|||
|
|
server {
|
|||
|
|
listen 80;
|
|||
|
|
server_name your-domain.com;
|
|||
|
|
|
|||
|
|
root /var/www/AI_GirlFriend/h5;
|
|||
|
|
index index.html;
|
|||
|
|
|
|||
|
|
location / {
|
|||
|
|
try_files $uri $uri/ /index.html;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
# 静态资源缓存
|
|||
|
|
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2|ttf|eot)$ {
|
|||
|
|
expires 30d;
|
|||
|
|
add_header Cache-Control "public, immutable";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
启用配置:
|
|||
|
|
```bash
|
|||
|
|
sudo ln -s /etc/nginx/sites-available/aigirlfriend-h5 /etc/nginx/sites-enabled/
|
|||
|
|
sudo nginx -t
|
|||
|
|
sudo systemctl reload nginx
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔒 第十一步:配置 HTTPS(可选但推荐)
|
|||
|
|
|
|||
|
|
### 11.1 安装 Certbot
|
|||
|
|
```bash
|
|||
|
|
# Ubuntu/Debian
|
|||
|
|
sudo apt install -y certbot python3-certbot-nginx
|
|||
|
|
|
|||
|
|
# CentOS
|
|||
|
|
sudo yum install -y certbot python3-certbot-nginx
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 11.2 获取 SSL 证书
|
|||
|
|
```bash
|
|||
|
|
sudo certbot --nginx -d your-domain.com
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 11.3 自动续期
|
|||
|
|
```bash
|
|||
|
|
sudo certbot renew --dry-run
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📊 第十二步:监控和日志
|
|||
|
|
|
|||
|
|
### 12.1 查看日志
|
|||
|
|
```bash
|
|||
|
|
# Nginx 日志
|
|||
|
|
sudo tail -f /var/log/nginx/php_access.log
|
|||
|
|
sudo tail -f /var/log/nginx/python_access.log
|
|||
|
|
|
|||
|
|
# Python 应用日志
|
|||
|
|
sudo tail -f /var/log/aigirlfriend-python.log
|
|||
|
|
|
|||
|
|
# PHP 日志
|
|||
|
|
sudo tail -f /var/log/php8.0-fpm.log
|
|||
|
|
|
|||
|
|
# 系统日志
|
|||
|
|
sudo journalctl -u aigirlfriend-python -f
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 12.2 性能监控
|
|||
|
|
```bash
|
|||
|
|
# 安装监控工具
|
|||
|
|
sudo apt install -y htop iotop nethogs
|
|||
|
|
|
|||
|
|
# 查看资源使用
|
|||
|
|
htop
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🧪 第十三步:测试部署
|
|||
|
|
|
|||
|
|
### 13.1 测试 PHP 后端
|
|||
|
|
```bash
|
|||
|
|
curl http://your-domain.com:30100
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 13.2 测试 Python 后端
|
|||
|
|
```bash
|
|||
|
|
curl http://your-domain.com:30101/health
|
|||
|
|
curl http://your-domain.com:30101/docs # API 文档
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 13.3 测试前端
|
|||
|
|
```bash
|
|||
|
|
# 在浏览器中访问
|
|||
|
|
http://your-domain.com
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔧 常见问题排查
|
|||
|
|
|
|||
|
|
### 问题 1:502 Bad Gateway
|
|||
|
|
```bash
|
|||
|
|
# 检查 PHP-FPM 状态
|
|||
|
|
sudo systemctl status php8.0-fpm
|
|||
|
|
|
|||
|
|
# 检查 Python 服务状态
|
|||
|
|
sudo systemctl status aigirlfriend-python
|
|||
|
|
|
|||
|
|
# 查看错误日志
|
|||
|
|
sudo tail -f /var/log/nginx/error.log
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 问题 2:数据库连接失败
|
|||
|
|
```bash
|
|||
|
|
# 检查 MySQL 状态
|
|||
|
|
sudo systemctl status mysql
|
|||
|
|
|
|||
|
|
# 测试数据库连接
|
|||
|
|
mysql -u aiuser -p fastadmin
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 问题 3:权限问题
|
|||
|
|
```bash
|
|||
|
|
# 重新设置权限
|
|||
|
|
sudo chown -R www-data:www-data /var/www/AI_GirlFriend/xunifriend_RaeeC/
|
|||
|
|
sudo chmod -R 777 /var/www/AI_GirlFriend/xunifriend_RaeeC/runtime/
|
|||
|
|
sudo chmod -R 777 /var/www/AI_GirlFriend/public/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 问题 4:Python 依赖问题
|
|||
|
|
```bash
|
|||
|
|
# 重新安装依赖
|
|||
|
|
cd /var/www/AI_GirlFriend
|
|||
|
|
source venv/bin/activate
|
|||
|
|
pip install -r lover/requirements.txt --upgrade
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🚀 性能优化建议
|
|||
|
|
|
|||
|
|
### 1. 启用 Gzip 压缩
|
|||
|
|
在 Nginx 配置中添加:
|
|||
|
|
```nginx
|
|||
|
|
gzip on;
|
|||
|
|
gzip_vary on;
|
|||
|
|
gzip_min_length 1024;
|
|||
|
|
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml+rss application/json;
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 配置 Redis 缓存
|
|||
|
|
```bash
|
|||
|
|
# 安装 Redis
|
|||
|
|
sudo apt install -y redis-server
|
|||
|
|
sudo systemctl start redis
|
|||
|
|
sudo systemctl enable redis
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 使用 CDN
|
|||
|
|
- 将静态资源上传到阿里云 OSS
|
|||
|
|
- 配置 CDN 加速
|
|||
|
|
|
|||
|
|
### 4. 数据库优化
|
|||
|
|
```sql
|
|||
|
|
-- 添加索引
|
|||
|
|
ALTER TABLE nf_user ADD INDEX idx_token (token);
|
|||
|
|
ALTER TABLE nf_chat_message ADD INDEX idx_user_session (user_id, session_id);
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📋 部署检查清单
|
|||
|
|
|
|||
|
|
- [ ] 服务器环境准备完成
|
|||
|
|
- [ ] PHP 8.0 安装并配置
|
|||
|
|
- [ ] Python 3.10+ 安装并配置
|
|||
|
|
- [ ] MySQL 8.0 安装并配置
|
|||
|
|
- [ ] Nginx 安装并配置
|
|||
|
|
- [ ] 项目文件上传完成
|
|||
|
|
- [ ] 数据库导入完成
|
|||
|
|
- [ ] 环境变量配置完成
|
|||
|
|
- [ ] Systemd 服务配置完成
|
|||
|
|
- [ ] 防火墙端口开放
|
|||
|
|
- [ ] 前端编译并部署
|
|||
|
|
- [ ] HTTPS 证书配置(可选)
|
|||
|
|
- [ ] 所有服务测试通过
|
|||
|
|
- [ ] 日志监控配置完成
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📞 技术支持
|
|||
|
|
|
|||
|
|
如遇到问题,请检查:
|
|||
|
|
1. 服务器日志:`/var/log/nginx/`, `/var/log/aigirlfriend-python.log`
|
|||
|
|
2. 系统日志:`sudo journalctl -xe`
|
|||
|
|
3. 服务状态:`sudo systemctl status [service-name]`
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**部署完成!** 🎉
|
|||
|
|
|
|||
|
|
访问地址:
|
|||
|
|
- 前端:http://your-domain.com
|
|||
|
|
- PHP 后端:http://your-domain.com:30100
|
|||
|
|
- Python 后端:http://your-domain.com:30101
|
|||
|
|
- API 文档:http://your-domain.com:30101/docs
|