# 远程服务器配置操作指南 ## 方法一:使用宝塔面板(推荐) ### 1. 编辑配置文件 在宝塔面板中: 1. 点击左侧菜单 **文件** 2. 导航到 `/www/wwwroot/px.ddn-ai.cloud/jar/` 3. 找到 `application.yml` 文件 4. 点击 **编辑** ### 2. 粘贴配置内容 将以下内容完整复制并粘贴到 `application.yml` 文件中: ```yaml server: port: 8089 servlet: context-path: / tomcat: uri-encoding: UTF-8 spring: application: name: peidu-backend profiles: active: prod mvc: pathmatch: matching-strategy: ant_path_matcher servlet: multipart: max-file-size: 10MB max-request-size: 10MB jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 http: encoding: charset: UTF-8 enabled: true force: true datasource: url: ${SPRING_DATASOURCE_URL} username: ${DB_USERNAME} password: ${DB_PASSWORD} driver-class-name: com.mysql.cj.jdbc.Driver hikari: minimum-idle: 5 maximum-pool-size: 20 connection-timeout: 30000 idle-timeout: 600000 max-lifetime: 1800000 mybatis-plus: mapper-locations: classpath*:/mapper/**/*.xml type-aliases-package: com.peidu.entity configuration: map-underscore-to-camel-case: true cache-enabled: false log-impl: org.apache.ibatis.logging.stdout.StdOutImpl global-config: db-config: id-type: auto logic-delete-field: deleted logic-delete-value: 1 logic-not-delete-value: 0 logging: level: com.peidu: info root: info pattern: console: '%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n' file: name: /www/wwwroot/px.ddn-ai.cloud/jar/logs/app.log # ======================================== # 文件上传配置 (关键配置) # ======================================== file: upload: mode: local local-path: /www/wwwroot/px.ddn-ai.cloud/Image/ url-prefix: https://px.ddn-ai.cloud/uploads/ allowed-types: jpg,jpeg,png,gif,bmp,webp,pdf,doc,docx,xls,xlsx max-size: 10 jwt: secret: ${JWT_SECRET} expiration: 604800 wx: appid: ${WX_APPID} secret: ${WX_SECRET} wechat: pay: appid: ${WX_PAY_APPID} mchid: ${WX_PAY_MCHID} key: ${WX_PAY_KEY} cert-path: classpath:cert/apiclient_cert.p12 notify-url: https://px.ddn-ai.cloud/api/payment/notify/wechat sms: skip-send: false aliyun: access-key-id: ${ALIYUN_SMS_ACCESS_KEY} access-key-secret: ${ALIYUN_SMS_ACCESS_SECRET} sign-name: ${SMS_SIGN_NAME} template-code: ${SMS_TEMPLATE_VERIFY_CODE} region: cn-hangzhou aliyun: oss: endpoint: ${ALIYUN_OSS_ENDPOINT:} access-key-id: ${ALIYUN_OSS_ACCESS_KEY:} access-key-secret: ${ALIYUN_OSS_ACCESS_SECRET:} bucket-name: ${ALIYUN_OSS_BUCKET:} domain: ${ALIYUN_OSS_DOMAIN:} ``` ### 3. 保存文件 点击 **保存** 按钮 ### 4. 重启服务 在宝塔面板中: 1. 找到 `start.sh` 文件 2. 点击 **终端** 按钮 3. 执行以下命令: ```bash cd /www/wwwroot/px.ddn-ai.cloud/jar bash start.sh ``` 或者直接在宝塔终端中执行: ```bash # 停止旧服务 ps aux | grep peidu-backend | grep -v grep | awk '{print $2}' | xargs kill -9 # 启动新服务 cd /www/wwwroot/px.ddn-ai.cloud/jar bash start.sh ``` ### 5. 查看日志 在宝塔面板中: 1. 导航到 `/www/wwwroot/px.ddn-ai.cloud/jar/logs/` 2. 打开 `app.log` 文件 3. 查找以下内容,确认配置生效: ``` ======================================== 📁 文件上传配置初始化 上传模式: local 本地保存路径: /www/wwwroot/px.ddn-ai.cloud/Image/ ✅ 本地保存模式 访问URL前缀: https://px.ddn-ai.cloud/uploads/ ======================================== ``` ## 方法二:使用SSH命令行 ### 1. 登录服务器 ```bash ssh root@px.ddn-ai.cloud ``` ### 2. 编辑配置文件 ```bash cd /www/wwwroot/px.ddn-ai.cloud/jar vi application.yml ``` 按 `i` 进入编辑模式,粘贴上面的配置内容,然后: - 按 `Esc` 退出编辑模式 - 输入 `:wq` 保存并退出 ### 3. 重启服务 ```bash bash start.sh ``` ### 4. 查看日志 ```bash tail -f logs/app.log ``` ## 验证配置 ### 1. 测试上传接口 在本地电脑上执行: ```bash curl -X POST https://px.ddn-ai.cloud/api/file/upload/direct \ -F "file=@test.jpg" ``` 应该返回: ```json { "code": 200, "message": "上传成功", "data": { "fileName": "20260126_xxx.jpg", "fileUrl": "https://px.ddn-ai.cloud/uploads/20260126_xxx.jpg", "fileSize": "12345", "fileType": "jpg" } } ``` **关键检查:** `fileUrl` 必须是 `https://px.ddn-ai.cloud/uploads/...` ### 2. 测试本地管理后台上传 1. 打开本地管理后台 2. 进入轮播图管理 3. 上传一张图片 4. 检查返回的URL是否为 `https://px.ddn-ai.cloud/uploads/...` 5. 检查图片是否能正常显示 ### 3. 直接访问图片 在浏览器中访问: ``` https://px.ddn-ai.cloud/uploads/20260126_xxx.jpg ``` 应该能正常显示图片。 ## 关键配置说明 ### 最重要的配置项 ```yaml file: upload: mode: local # 远程服务器使用local模式 local-path: /www/wwwroot/px.ddn-ai.cloud/Image/ # 文件保存路径 url-prefix: https://px.ddn-ai.cloud/uploads/ # ⚠️ 必须是远程地址! ``` ### 为什么url-prefix必须是远程地址? 因为: 1. 本地开发环境会调用远程服务器的 `/api/file/upload/direct` 接口 2. 远程服务器保存文件后,返回 `fileUrl` 3. 这个 `fileUrl` 会被本地后端转发给前端 4. 前端使用这个 `fileUrl` 来显示图片 5. 如果 `url-prefix` 是 `localhost`,前端就无法加载图片 ### 配置流程图 ``` 本地前端 → 本地后端(remote模式) → 远程服务器(local模式) ↓ 保存到 /www/.../Image/ ↓ 返回 https://px.ddn-ai.cloud/uploads/xxx.jpg ↓ 本地后端转发给前端 ↓ 前端显示图片 ✅ ``` ## 常见问题 ### Q1: 配置后还是返回localhost地址? **原因:** 服务没有重启,还在使用旧配置 **解决:** ```bash # 强制停止 ps aux | grep peidu-backend | grep -v grep | awk '{print $2}' | xargs kill -9 # 重新启动 cd /www/wwwroot/px.ddn-ai.cloud/jar bash start.sh ``` ### Q2: 图片上传成功但无法访问? **原因:** Nginx配置问题或文件权限问题 **解决:** ```bash # 检查文件是否存在 ls -la /www/wwwroot/px.ddn-ai.cloud/Image/ # 修改权限 chmod 755 /www/wwwroot/px.ddn-ai.cloud/Image/ chmod 644 /www/wwwroot/px.ddn-ai.cloud/Image/* # 检查Nginx配置 cat /www/server/panel/vhost/nginx/px.ddn-ai.cloud.conf | grep uploads ``` ### Q3: 如何查看当前配置是否生效? **方法1:** 查看启动日志 ```bash tail -100 /www/wwwroot/px.ddn-ai.cloud/jar/logs/app.log | grep "文件上传配置" ``` **方法2:** 测试上传接口 ```bash curl -X POST https://px.ddn-ai.cloud/api/file/upload/direct \ -F "file=@test.jpg" | jq .data.fileUrl ``` 应该输出:`"https://px.ddn-ai.cloud/uploads/xxx.jpg"` ## 日期 2026-01-26