更新.gitignore以排除部署配置文件,删除不再使用的一键部署脚本,优化小程序部署流程,增强文档说明。

This commit is contained in:
乘风
2026-01-31 17:39:21 +08:00
parent ceac5b73ff
commit 70497d3047
45 changed files with 9346 additions and 272 deletions

View File

@@ -0,0 +1,184 @@
# 常见问题手册
## 1. 宝塔面板问题
### 问题1: JSON解析错误
```
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes
```
**原因**: 数据库中`project_config`字段不是有效JSON格式
**错误格式**: `{project_name: xxx, port: 3000}`
**正确格式**: `{"project_name": "xxx", "port": 3000}`
**修复方法**:
```python
import sqlite3, json
conn = sqlite3.connect('/www/server/panel/data/db/site.db')
c = conn.cursor()
c.execute("SELECT id, name, project_config FROM sites WHERE project_type='Node'")
for row in c.fetchall():
try:
json.loads(row[2])
except:
# 手动构建正确JSON并更新
pass
```
---
## 2. 网络访问问题
### 问题2: 外网无法访问ERR_EMPTY_RESPONSE
**原因**: 腾讯云安全组只开放443端口未开放80端口
**解决方案**:
1. 配置SSL证书使用通配符证书
2. Nginx配置添加443监听
```nginx
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /www/server/panel/vhost/cert/www.quwanzhi.com/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/www.quwanzhi.com/privkey.pem;
```
### 问题3: DNS被代理劫持
**原因**: 本地使用VPN/代理Clash, V2Ray等
**现象**:
- 本地DNS解析到198.18.x.x
- 服务器内部测试正常
- 外部访问失败
**解决方案**:
- 关闭代理软件
- 或修改hosts文件
- 用手机4G网络测试
---
## 3. Node项目问题
### 问题4: 启动失败Could not find production build
**原因**: 使用`npm run start`但未执行`npm run build`
**解决方案**:
- 方案A: 先`npm run build``npm run start`
- 方案B: 改用`npm run dev`模式
### 问题5: 端口冲突EADDRINUSE
**原因**: 多个项目配置相同端口或package.json中端口写死
**解决方案**:
1. 检查端口占用: `ss -tlnp | grep :端口号`
2. 修改package.json: `"start": "next start -p 新端口"`
3. 更新数据库中的端口配置
### 问题6: Vue项目 Invalid Host header
**原因**: Nginx代理时Host头不匹配
**解决方案**: 修改`vue.config.js`:
```javascript
devServer: {
disableHostCheck: true
}
```
---
## 4. 腾讯云特性
### 问题7: 服务器无法访问自己公网IP
**原因**: 轻量服务器网络配置限制
**现象**:
- 服务器无法通过公网IP访问自己
- 外部访问返回Empty reply
**解决方案**:
- 这是正常现象
- 服务器内部测试用127.0.0.1
- 外部访问问题需其他网络测试
### 问题8: 端口只监听IPv6
**问题**: 端口显示`tcp6 :::3006`而不是`tcp 0.0.0.0:3006`
**说明**:
- Node.js监听`::`会同时响应IPv4
- 这是正常现象,无需特别处理
---
## 5. Nginx问题
### 问题9: 重复server_name警告
**原因**: 同一域名在多个配置文件中定义
**解决方案**:
- 删除或备份重复配置文件
- Node项目使用`node_项目名.conf`
- 不要同时创建`域名.conf`
### 问题10: HTTPS强制重定向导致无法访问
**问题**: Nginx配置了`return 301 https://`但SSL证书未配置
**解决方案**:
- 删除HTTPS重定向
- 或正确配置SSL证书
- 同时支持HTTP和HTTPS
---
## 6. 宝塔与PM2冲突
### 问题11: 权限错误 EACCES
**原因**: 同时使用root用户PM2和宝塔PM2www用户
**现象**:
- 权限错误:`EACCES: permission denied`
- 宝塔面板显示未启动但实际在运行
- 状态不同步
**解决方案**:
- 停止所有独立PM2`pm2 kill`
- 只使用宝塔界面管理
- 所有操作通过宝塔面板
---
## 7. 诊断命令速查
```bash
# 检查端口占用
ss -tlnp | grep :3006
netstat -tlnp | grep :3006
# 测试HTTP响应
curl -I http://localhost:3006
curl -I -H 'Host: soul.quwanzhi.com' http://127.0.0.1
# 检查Nginx配置
nginx -t
# 重载Nginx
nginx -s reload
# 检查PM2进程
/www/server/nodejs/v22.14.0/bin/pm2 list
# 检查DNS解析
dig soul.quwanzhi.com
dig +short soul.quwanzhi.com @8.8.8.8
```