diff --git a/deploy-commands.txt b/deploy-commands.txt new file mode 100644 index 00000000..e69de29b diff --git a/deploy-to-server.bat b/deploy-to-server.bat new file mode 100644 index 00000000..05d23981 --- /dev/null +++ b/deploy-to-server.bat @@ -0,0 +1,79 @@ +@echo off +chcp 65001 >nul +setlocal EnableDelayedExpansion + +REM ============================================ +REM 直播系统一键部署脚本 (Windows版) +REM 服务器地址: 1.15.149.240 +REM ============================================ + +set SERVER_IP=1.15.149.240 +set SERVER_USER=root +set DEPLOY_PATH=/opt/zhibo + +echo ========================================== +echo 直播系统部署脚本 (Windows版) +echo 目标服务器: %SERVER_IP% +echo ========================================== +echo. + +REM 检查scp和ssh命令 +where scp >nul 2>&1 +if %errorlevel% neq 0 ( + echo 错误: 未找到scp命令 + echo 请安装OpenSSH客户端或使用Git Bash运行deploy-to-server.sh + pause + exit /b 1 +) + +echo [1/6] 测试SSH连接... +ssh -o ConnectTimeout=10 %SERVER_USER%@%SERVER_IP% "echo SSH连接成功" +if %errorlevel% neq 0 ( + echo 错误: 无法连接到服务器 + pause + exit /b 1 +) + +echo. +echo [2/6] 创建服务器目录结构... +ssh %SERVER_USER%@%SERVER_IP% "mkdir -p /opt/zhibo/admin-api /opt/zhibo/front-api /opt/zhibo/admin-web /opt/zhibo/logs /opt/zhibo/scripts" + +echo. +echo [3/6] 上传后端JAR包... +echo - 上传 Admin API... +scp Zhibo/zhibo-h/crmeb-admin/target/Crmeb-admin.jar %SERVER_USER%@%SERVER_IP%:/opt/zhibo/admin-api/ + +echo - 上传 Front API... +scp Zhibo/zhibo-h/crmeb-front/target/Crmeb-front.jar %SERVER_USER%@%SERVER_IP%:/opt/zhibo/front-api/ + +echo. +echo [4/6] 上传前端管理界面... +scp -r Zhibo/admin/dist/* %SERVER_USER%@%SERVER_IP%:/opt/zhibo/admin-web/ + +echo. +echo [5/6] 创建服务启动脚本... +ssh %SERVER_USER%@%SERVER_IP% "cat > /opt/zhibo/scripts/start-admin-api.sh" < server-scripts/start-admin-api.sh +ssh %SERVER_USER%@%SERVER_IP% "cat > /opt/zhibo/scripts/start-front-api.sh" < server-scripts/start-front-api.sh +ssh %SERVER_USER%@%SERVER_IP% "chmod +x /opt/zhibo/scripts/*.sh" + +echo. +echo [6/6] 上传Nginx配置... +scp server-scripts/zhibo.nginx.conf %SERVER_USER%@%SERVER_IP%:/etc/nginx/conf.d/zhibo.conf +ssh %SERVER_USER%@%SERVER_IP% "nginx -t && systemctl reload nginx" + +echo. +echo ========================================== +echo 部署完成! +echo ========================================== +echo. +echo 请在服务器上执行以下命令启动服务: +echo ssh %SERVER_USER%@%SERVER_IP% +echo cd /opt/zhibo/scripts +echo ./start-all.sh +echo. +echo 服务访问地址: +echo - 管理后台: http://%SERVER_IP% +echo - Admin API: http://%SERVER_IP%:30001 +echo - Front API: http://%SERVER_IP%:8081 +echo. +pause diff --git a/deploy-to-server.sh b/deploy-to-server.sh new file mode 100644 index 00000000..eb818001 --- /dev/null +++ b/deploy-to-server.sh @@ -0,0 +1,269 @@ +#!/bin/bash +# ============================================ +# 直播系统一键部署脚本 +# 服务器地址: 1.15.149.240 +# ============================================ + +set -e + +# 配置变量 +SERVER_IP="1.15.149.240" +SERVER_USER="root" +DEPLOY_PATH="/opt/zhibo" +ADMIN_API_PORT=30001 +FRONT_API_PORT=8081 + +echo "==========================================" +echo " 直播系统部署脚本" +echo " 目标服务器: $SERVER_IP" +echo "==========================================" + +# 检查SSH连接 +echo "" +echo "[1/6] 检查SSH连接..." +ssh -o ConnectTimeout=10 ${SERVER_USER}@${SERVER_IP} "echo 'SSH连接成功'" || { + echo "错误: 无法连接到服务器 ${SERVER_IP}" + echo "请确保:" + echo " 1. 服务器IP正确" + echo " 2. SSH密钥已配置或准备好密码" + exit 1 +} + +# 在服务器上创建目录结构 +echo "" +echo "[2/6] 创建服务器目录结构..." +ssh ${SERVER_USER}@${SERVER_IP} << 'ENDSSH' +mkdir -p /opt/zhibo/admin-api +mkdir -p /opt/zhibo/front-api +mkdir -p /opt/zhibo/admin-web +mkdir -p /opt/zhibo/logs +mkdir -p /opt/zhibo/scripts +echo "目录创建完成" +ENDSSH + +# 上传后端JAR包 +echo "" +echo "[3/6] 上传后端JAR包..." +echo " - 上传 Admin API (Crmeb-admin.jar)..." +scp Zhibo/zhibo-h/crmeb-admin/target/Crmeb-admin.jar ${SERVER_USER}@${SERVER_IP}:/opt/zhibo/admin-api/ + +echo " - 上传 Front API (Crmeb-front.jar)..." +scp Zhibo/zhibo-h/crmeb-front/target/Crmeb-front.jar ${SERVER_USER}@${SERVER_IP}:/opt/zhibo/front-api/ + +# 上传前端文件 +echo "" +echo "[4/6] 上传前端管理界面..." +scp -r Zhibo/admin/dist/* ${SERVER_USER}@${SERVER_IP}:/opt/zhibo/admin-web/ + +# 创建启动脚本 +echo "" +echo "[5/6] 创建服务启动脚本..." +ssh ${SERVER_USER}@${SERVER_IP} << 'ENDSSH' +# 创建Admin API启动脚本 +cat > /opt/zhibo/scripts/start-admin-api.sh << 'EOF' +#!/bin/bash +APP_NAME="Crmeb-admin" +APP_PATH="/opt/zhibo/admin-api" +LOG_PATH="/opt/zhibo/logs" +JAR_FILE="${APP_PATH}/${APP_NAME}.jar" + +# 停止旧进程 +pid=$(ps -ef | grep "${APP_NAME}.jar" | grep -v grep | awk '{print $2}') +if [ -n "$pid" ]; then + echo "停止旧进程: $pid" + kill -9 $pid + sleep 2 +fi + +# 启动新进程 +if [ -f "$JAR_FILE" ]; then + echo "启动 ${APP_NAME}..." + nohup java -Xms512m -Xmx1024m -jar $JAR_FILE \ + --spring.redis.host=127.0.0.1 \ + > ${LOG_PATH}/admin-api.log 2>&1 & + echo "Admin API 启动成功,端口: 30001" +else + echo "错误: JAR文件不存在: $JAR_FILE" + exit 1 +fi +EOF + +# 创建Front API启动脚本 +cat > /opt/zhibo/scripts/start-front-api.sh << 'EOF' +#!/bin/bash +APP_NAME="Crmeb-front" +APP_PATH="/opt/zhibo/front-api" +LOG_PATH="/opt/zhibo/logs" +JAR_FILE="${APP_PATH}/${APP_NAME}.jar" + +# 停止旧进程 +pid=$(ps -ef | grep "${APP_NAME}.jar" | grep -v grep | awk '{print $2}') +if [ -n "$pid" ]; then + echo "停止旧进程: $pid" + kill -9 $pid + sleep 2 +fi + +# 启动新进程 +if [ -f "$JAR_FILE" ]; then + echo "启动 ${APP_NAME}..." + nohup java -Xms512m -Xmx1024m -jar $JAR_FILE \ + --spring.redis.host=127.0.0.1 \ + > ${LOG_PATH}/front-api.log 2>&1 & + echo "Front API 启动成功,端口: 8081" +else + echo "错误: JAR文件不存在: $JAR_FILE" + exit 1 +fi +EOF + +# 创建停止脚本 +cat > /opt/zhibo/scripts/stop-all.sh << 'EOF' +#!/bin/bash +echo "停止所有服务..." +pkill -f "Crmeb-admin.jar" 2>/dev/null && echo "Admin API 已停止" || echo "Admin API 未运行" +pkill -f "Crmeb-front.jar" 2>/dev/null && echo "Front API 已停止" || echo "Front API 未运行" +echo "完成" +EOF + +# 创建一键启动脚本 +cat > /opt/zhibo/scripts/start-all.sh << 'EOF' +#!/bin/bash +echo "==========================================" +echo " 启动所有直播系统服务" +echo "==========================================" +cd /opt/zhibo/scripts +./start-admin-api.sh +sleep 5 +./start-front-api.sh +echo "" +echo "所有服务启动完成!" +echo " - Admin API: http://localhost:30001" +echo " - Front API: http://localhost:8081" +EOF + +# 创建状态检查脚本 +cat > /opt/zhibo/scripts/status.sh << 'EOF' +#!/bin/bash +echo "==========================================" +echo " 服务状态检查" +echo "==========================================" +echo "" +echo "Admin API (端口 30001):" +if pgrep -f "Crmeb-admin.jar" > /dev/null; then + echo " 状态: 运行中" + pid=$(pgrep -f "Crmeb-admin.jar") + echo " PID: $pid" +else + echo " 状态: 未运行" +fi + +echo "" +echo "Front API (端口 8081):" +if pgrep -f "Crmeb-front.jar" > /dev/null; then + echo " 状态: 运行中" + pid=$(pgrep -f "Crmeb-front.jar") + echo " PID: $pid" +else + echo " 状态: 未运行" +fi + +echo "" +echo "端口监听状态:" +netstat -tlnp 2>/dev/null | grep -E "30001|8081" || ss -tlnp | grep -E "30001|8081" +EOF + +chmod +x /opt/zhibo/scripts/*.sh +echo "启动脚本创建完成" +ENDSSH + +# 创建Nginx配置 +echo "" +echo "[6/6] 配置Nginx..." +ssh ${SERVER_USER}@${SERVER_IP} << 'ENDSSH' +# 检查Nginx是否安装 +if ! command -v nginx &> /dev/null; then + echo "Nginx未安装,正在安装..." + apt-get update && apt-get install -y nginx || yum install -y nginx +fi + +# 创建Nginx配置 +cat > /etc/nginx/conf.d/zhibo.conf << 'EOF' +# 直播系统 - 管理后台前端 +server { + listen 80; + server_name admin.zhibo.local; # 可以改成你的域名 + + root /opt/zhibo/admin-web; + index index.html; + + # 前端静态文件 + location / { + try_files $uri $uri/ /index.html; + } + + # 代理Admin API + location /api/admin/ { + proxy_pass http://127.0.0.1:30001/api/admin/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + # 代理公共API + location /api/public/ { + proxy_pass http://127.0.0.1:30001/api/public/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + } +} + +# 直播系统 - 前端API (供APP调用) +server { + listen 8080; + server_name _; + + # 代理Front API + location / { + proxy_pass http://127.0.0.1:8081; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + + # WebSocket支持 + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_read_timeout 86400; + } +} +EOF + +# 测试Nginx配置 +nginx -t && systemctl reload nginx +echo "Nginx配置完成" +ENDSSH + +echo "" +echo "==========================================" +echo " 部署完成!" +echo "==========================================" +echo "" +echo "接下来请在服务器上执行以下命令启动服务:" +echo "" +echo " ssh ${SERVER_USER}@${SERVER_IP}" +echo " cd /opt/zhibo/scripts" +echo " ./start-all.sh" +echo "" +echo "服务访问地址:" +echo " - 管理后台: http://${SERVER_IP}" +echo " - Admin API: http://${SERVER_IP}:30001" +echo " - Front API: http://${SERVER_IP}:8081 (或通过Nginx 8080端口)" +echo "" +echo "常用命令:" +echo " - 启动所有服务: /opt/zhibo/scripts/start-all.sh" +echo " - 停止所有服务: /opt/zhibo/scripts/stop-all.sh" +echo " - 查看服务状态: /opt/zhibo/scripts/status.sh" +echo " - 查看日志: tail -f /opt/zhibo/logs/admin-api.log" +echo " tail -f /opt/zhibo/logs/front-api.log" +echo "" diff --git a/live-streaming.zip b/live-streaming.zip new file mode 100644 index 00000000..9537f103 Binary files /dev/null and b/live-streaming.zip differ diff --git a/live-streaming/.env.example b/live-streaming/.env.example new file mode 100644 index 00000000..86ff4fa3 --- /dev/null +++ b/live-streaming/.env.example @@ -0,0 +1,25 @@ +# ========================================== +# 直播服务 Docker 环境配置 +# 复制此文件为 .env 并修改配置 +# ========================================== + +# ========== 服务器公网地址 ========== +# 你的服务器公网 IP +PUBLIC_SRS_HOST=1.15.149.240 + +# ========== 端口配置 ========== +# API 服务端口 +API_EXPOSE_PORT=25001 + +# SRS RTMP 端口(推流用) +SRS_RTMP_EXPOSE_PORT=25002 + +# SRS HTTP 端口(拉流用) +SRS_HTTP_EXPOSE_PORT=25003 + +# SRS API 端口 +SRS_API_EXPOSE_PORT=1985 + +# ========== 公网端口(如果使用端口映射,修改这里)========== +PUBLIC_SRS_RTMP_PORT=25002 +PUBLIC_SRS_HTTP_PORT=25003 diff --git a/live-streaming/deploy.bat b/live-streaming/deploy.bat new file mode 100644 index 00000000..0fc1afbd --- /dev/null +++ b/live-streaming/deploy.bat @@ -0,0 +1,46 @@ +@echo off +chcp 65001 >nul +REM ========================================== +REM 直播服务 Docker 部署脚本 (Windows) +REM ========================================== + +echo ========================================== +echo 直播服务 Docker 部署 +echo ========================================== + +REM 检查 .env 文件 +if not exist ".env" ( + echo ❌ 错误: 未找到 .env 文件 + echo 请复制 .env.example 为 .env 并修改配置 + echo copy .env.example .env + pause + exit /b 1 +) + +echo. +echo 🔨 构建镜像... +docker-compose build + +echo. +echo 🚀 启动服务... +docker-compose up -d + +echo. +echo ✅ 部署完成! +echo. +echo ========================================== +echo 服务状态 +echo ========================================== +docker-compose ps + +echo. +echo ========================================== +echo 常用命令 +echo ========================================== +echo 查看日志: docker-compose logs -f +echo 停止服务: docker-compose down +echo 重启服务: docker-compose restart +echo 查看状态: docker-compose ps +echo. + +pause diff --git a/live-streaming/deploy.sh b/live-streaming/deploy.sh new file mode 100644 index 00000000..8dcf268b --- /dev/null +++ b/live-streaming/deploy.sh @@ -0,0 +1,70 @@ +#!/bin/bash +# ========================================== +# 直播服务 Docker 部署脚本 +# ========================================== + +set -e + +echo "==========================================" +echo " 直播服务 Docker 部署" +echo "==========================================" + +# 检查 .env 文件 +if [ ! -f ".env" ]; then + echo "❌ 错误: 未找到 .env 文件" + echo "请复制 .env.example 为 .env 并修改配置" + echo " cp .env.example .env" + echo " nano .env" + exit 1 +fi + +# 加载环境变量 +source .env + +echo "" +echo "📋 当前配置:" +echo " - 公网地址: ${PUBLIC_SRS_HOST:-未设置}" +echo " - API 端口: ${API_EXPOSE_PORT:-25001}" +echo " - RTMP 端口: ${SRS_RTMP_EXPOSE_PORT:-25002}" +echo " - HTTP 端口: ${SRS_HTTP_EXPOSE_PORT:-25003}" +echo "" + +# 确认部署 +read -p "是否继续部署? (y/n): " confirm +if [ "$confirm" != "y" ]; then + echo "已取消部署" + exit 0 +fi + +echo "" +echo "🔨 构建镜像..." +docker-compose build + +echo "" +echo "🚀 启动服务..." +docker-compose up -d + +echo "" +echo "✅ 部署完成!" +echo "" +echo "==========================================" +echo " 服务状态" +echo "==========================================" +docker-compose ps + +echo "" +echo "==========================================" +echo " 访问地址" +echo "==========================================" +echo " API 服务: http://${PUBLIC_SRS_HOST:-localhost}:${API_EXPOSE_PORT:-25001}" +echo " RTMP 推流: rtmp://${PUBLIC_SRS_HOST:-localhost}:${SRS_RTMP_EXPOSE_PORT:-25002}/live/[streamKey]" +echo " HTTP 拉流: http://${PUBLIC_SRS_HOST:-localhost}:${SRS_HTTP_EXPOSE_PORT:-25003}/live/[streamKey].flv" +echo "" +echo "==========================================" +echo " 常用命令" +echo "==========================================" +echo " 查看日志: docker-compose logs -f" +echo " 停止服务: docker-compose down" +echo " 重启服务: docker-compose restart" +echo " 查看状态: docker-compose ps" +echo "" diff --git a/部署指南-1.15.149.240.md b/部署指南-1.15.149.240.md new file mode 100644 index 00000000..45fb26bd --- /dev/null +++ b/部署指南-1.15.149.240.md @@ -0,0 +1,278 @@ +# 直播系统部署指南 + +## 服务器信息 +- **IP地址**: 1.15.149.240 +- **部署目录**: /opt/zhibo + +## 需要部署的服务 + +| 服务 | 端口 | 说明 | +|------|------|------| +| Admin API | 30001 | 管理后台API | +| Front API | 8081 | 前端/APP API | +| Admin Web | 80 | 管理后台界面 | + +--- + +## 第一步:上传文件到服务器 + +### 方法1:使用SCP命令(推荐) + +打开PowerShell或CMD,在项目根目录执行: + +```powershell +# 1. 创建服务器目录 +ssh root@1.15.149.240 "mkdir -p /opt/zhibo/{admin-api,front-api,admin-web,logs,scripts}" + +# 2. 上传Admin API JAR包 +scp Zhibo/zhibo-h/crmeb-admin/target/Crmeb-admin.jar root@1.15.149.240:/opt/zhibo/admin-api/ + +# 3. 上传Front API JAR包 +scp Zhibo/zhibo-h/crmeb-front/target/Crmeb-front.jar root@1.15.149.240:/opt/zhibo/front-api/ + +# 4. 上传前端文件 +scp -r Zhibo/admin/dist/* root@1.15.149.240:/opt/zhibo/admin-web/ +``` + +### 方法2:使用SFTP工具 + +使用FileZilla、WinSCP等工具连接服务器,手动上传: +- `Zhibo/zhibo-h/crmeb-admin/target/Crmeb-admin.jar` → `/opt/zhibo/admin-api/` +- `Zhibo/zhibo-h/crmeb-front/target/Crmeb-front.jar` → `/opt/zhibo/front-api/` +- `Zhibo/admin/dist/` 目录下所有文件 → `/opt/zhibo/admin-web/` + +--- + +## 第二步:SSH登录服务器配置 + +```bash +ssh root@1.15.149.240 +``` + +### 2.1 创建启动脚本 + +```bash +# 创建Admin API启动脚本 +cat > /opt/zhibo/scripts/start-admin-api.sh << 'EOF' +#!/bin/bash +APP_NAME="Crmeb-admin" +JAR_FILE="/opt/zhibo/admin-api/${APP_NAME}.jar" +LOG_FILE="/opt/zhibo/logs/admin-api.log" + +# 停止旧进程 +pid=$(pgrep -f "${APP_NAME}.jar") +[ -n "$pid" ] && kill -9 $pid && echo "停止旧进程: $pid" && sleep 2 + +# 启动 +nohup java -Xms512m -Xmx1024m -jar $JAR_FILE \ + --spring.redis.host=127.0.0.1 \ + > $LOG_FILE 2>&1 & +echo "Admin API 启动成功,端口: 30001" +EOF + +# 创建Front API启动脚本 +cat > /opt/zhibo/scripts/start-front-api.sh << 'EOF' +#!/bin/bash +APP_NAME="Crmeb-front" +JAR_FILE="/opt/zhibo/front-api/${APP_NAME}.jar" +LOG_FILE="/opt/zhibo/logs/front-api.log" + +# 停止旧进程 +pid=$(pgrep -f "${APP_NAME}.jar") +[ -n "$pid" ] && kill -9 $pid && echo "停止旧进程: $pid" && sleep 2 + +# 启动 +nohup java -Xms512m -Xmx1024m -jar $JAR_FILE \ + --spring.redis.host=127.0.0.1 \ + > $LOG_FILE 2>&1 & +echo "Front API 启动成功,端口: 8081" +EOF + +# 创建一键启动脚本 +cat > /opt/zhibo/scripts/start-all.sh << 'EOF' +#!/bin/bash +echo "启动所有服务..." +/opt/zhibo/scripts/start-admin-api.sh +sleep 5 +/opt/zhibo/scripts/start-front-api.sh +echo "完成!" +EOF + +# 创建停止脚本 +cat > /opt/zhibo/scripts/stop-all.sh << 'EOF' +#!/bin/bash +pkill -f "Crmeb-admin.jar" && echo "Admin API 已停止" +pkill -f "Crmeb-front.jar" && echo "Front API 已停止" +EOF + +# 赋予执行权限 +chmod +x /opt/zhibo/scripts/*.sh +``` + +### 2.2 配置Nginx + +```bash +# 创建Nginx配置 +cat > /etc/nginx/conf.d/zhibo.conf << 'EOF' +# 管理后台 +server { + listen 80; + server_name _; + + root /opt/zhibo/admin-web; + index index.html; + + location / { + try_files $uri $uri/ /index.html; + } + + # Admin API代理 + location /api/admin/ { + proxy_pass http://127.0.0.1:30001/api/admin/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + + location /api/public/ { + proxy_pass http://127.0.0.1:30001/api/public/; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + } +} + +# Front API (供APP调用) +server { + listen 8080; + server_name _; + + location / { + proxy_pass http://127.0.0.1:8081; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + + # WebSocket支持 + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_read_timeout 86400; + } +} +EOF + +# 测试并重载Nginx +nginx -t && systemctl reload nginx +``` + +--- + +## 第三步:启动服务 + +```bash +# 启动所有服务 +/opt/zhibo/scripts/start-all.sh + +# 查看日志 +tail -f /opt/zhibo/logs/admin-api.log +tail -f /opt/zhibo/logs/front-api.log + +# 检查端口 +netstat -tlnp | grep -E "30001|8081" +``` + +--- + +## 第四步:验证部署 + +### 检查服务状态 +```bash +# 检查进程 +ps aux | grep -E "Crmeb-admin|Crmeb-front" + +# 检查端口 +ss -tlnp | grep -E "30001|8081|80|8080" +``` + +### 测试接口 +```bash +# 测试Admin API +curl http://localhost:30001/api/public/version + +# 测试Front API +curl http://localhost:8081/api/front/index +``` + +--- + +## 访问地址 + +| 服务 | 地址 | +|------|------| +| 管理后台 | http://1.15.149.240 | +| Admin API | http://1.15.149.240:30001 | +| Front API | http://1.15.149.240:8081 | +| Front API (Nginx) | http://1.15.149.240:8080 | + +--- + +## 常用命令 + +```bash +# 启动所有服务 +/opt/zhibo/scripts/start-all.sh + +# 停止所有服务 +/opt/zhibo/scripts/stop-all.sh + +# 单独启动Admin API +/opt/zhibo/scripts/start-admin-api.sh + +# 单独启动Front API +/opt/zhibo/scripts/start-front-api.sh + +# 查看日志 +tail -100f /opt/zhibo/logs/admin-api.log +tail -100f /opt/zhibo/logs/front-api.log +``` + +--- + +## APP配置 + +部署完成后,需要修改Android APP的API地址: + +文件:`android-app/app/src/main/java/com/example/livestreaming/net/ApiConfig.java` + +```java +public static final String BASE_URL = "http://1.15.149.240:8081/"; +``` + +然后重新编译APK。 + +--- + +## 故障排查 + +### 服务启动失败 +```bash +# 查看详细日志 +cat /opt/zhibo/logs/admin-api.log +cat /opt/zhibo/logs/front-api.log + +# 检查Java版本 +java -version # 需要JDK 1.8 + +# 检查Redis是否运行 +redis-cli ping +``` + +### 端口被占用 +```bash +# 查看端口占用 +lsof -i :30001 +lsof -i :8081 + +# 杀掉占用进程 +kill -9 +```