更新
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# AI Chat 生产环境 Nginx 配置示例
|
||||
# 网站根目录必须指向 backend/public
|
||||
# phpstudy:网站 -> 设置 -> 配置文件,粘贴以下 server 块内容
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
# listen 9998; # 若使用自定义端口
|
||||
server_name chat.zhenyangtang.com.cn;
|
||||
|
||||
root D:/web/chat/backend/public;
|
||||
index index.html index.php;
|
||||
|
||||
client_max_body_size 100m;
|
||||
|
||||
# ===== 1. API 必须优先走 PHP(不要走 SPA 的 index.html)=====
|
||||
location ^~ /api {
|
||||
rewrite ^ /index.php?s=$uri last;
|
||||
}
|
||||
|
||||
# ===== 2. PHP 处理 =====
|
||||
location ~ \.php$ {
|
||||
fastcgi_pass 127.0.0.1:9000; # phpstudy 可能是 9000 或 9001,按实际修改
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
include fastcgi_params;
|
||||
}
|
||||
|
||||
# ===== 3. 管理后台 SPA =====
|
||||
location ^~ /admin/ {
|
||||
try_files $uri $uri/ /admin/index.html;
|
||||
}
|
||||
location = /admin {
|
||||
return 301 /admin/;
|
||||
}
|
||||
|
||||
# ===== 4. 会员端 SPA =====
|
||||
location / {
|
||||
try_files $uri $uri/ /index.html;
|
||||
}
|
||||
|
||||
# ===== 5. 静态资源缓存 =====
|
||||
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff2?)$ {
|
||||
expires 7d;
|
||||
access_log off;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
# phpstudy 部署说明
|
||||
|
||||
## 1. 网站根目录
|
||||
|
||||
必须指向:
|
||||
|
||||
```
|
||||
D:\web\chat\backend\public
|
||||
```
|
||||
|
||||
**不能**指到 `backend/` 或项目根目录。
|
||||
|
||||
## 2. 编译前端
|
||||
|
||||
```powershell
|
||||
cd D:\web\chat
|
||||
npm run build
|
||||
```
|
||||
|
||||
## 3. 伪静态 / 重写规则
|
||||
|
||||
### 若使用 Apache(phpstudy 默认)
|
||||
|
||||
项目已自带 `backend/public/.htaccess`,确保 phpstudy 中:
|
||||
|
||||
- 网站 → 设置 → **Apache** → 开启 `mod_rewrite`
|
||||
- 允许 `.htaccess` 覆盖(AllowOverride All)
|
||||
|
||||
### 若使用 Nginx
|
||||
|
||||
phpstudy → 网站 → 设置 → **配置文件**,参考 `deploy/nginx.conf.example`。
|
||||
|
||||
**关键配置**(缺少会导致登录 404):
|
||||
|
||||
```nginx
|
||||
location ^~ /api {
|
||||
rewrite ^ /index.php?s=$uri last;
|
||||
}
|
||||
|
||||
location ~ \.php$ {
|
||||
fastcgi_pass 127.0.0.1:9000;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
include fastcgi_params;
|
||||
}
|
||||
```
|
||||
|
||||
注意:`location /` 的 `try_files ... /index.html` 不能拦截 `/api`,所以 `/api` 必须写在前面并使用 `^~` 前缀匹配。
|
||||
|
||||
## 4. 验证 API 是否正常
|
||||
|
||||
浏览器或 curl 测试:
|
||||
|
||||
```
|
||||
POST http://你的域名/api/auth/login
|
||||
Content-Type: application/json
|
||||
|
||||
{"account":"admin","password":"admin123"}
|
||||
```
|
||||
|
||||
应返回 JSON(`code: 0` 表示成功),**不应**是 nginx 404 页面。
|
||||
|
||||
## 5. 访问地址
|
||||
|
||||
| 功能 | 地址 |
|
||||
|------|------|
|
||||
| 会员端 | `http://域名/` |
|
||||
| 管理后台 | `http://域名/admin/` |
|
||||
| API | `http://域名/api/...` |
|
||||
|
||||
## 6. 常见问题
|
||||
|
||||
| 现象 | 原因 | 处理 |
|
||||
|------|------|------|
|
||||
| 打开首页是 ThinkPHP 欢迎页 | 默认走了 index.php | 设置 `index index.html index.php`;勿用 ThinkPHP 全站伪静态;已内置兜底会输出 Vue 页面 |
|
||||
| 登录 404 nginx | `/api` 未转发到 index.php | 按上文添加 Nginx/Apache 重写 |
|
||||
| 页面空白 | 根目录指错或未编译 | 改为 `backend/public` 并执行 `npm run build` |
|
||||
| 管理后台 404 | 未编译或未部署 admin | 执行 `npm run build` |
|
||||
| 上传失败 | PHP 限制 / 目录权限 | php.ini 调大 upload_max_filesize;`chmod -R 775 backend/uploads` |
|
||||
|
||||
### Linux 上传图片 500 错误
|
||||
|
||||
在服务器上执行:
|
||||
|
||||
```bash
|
||||
# 1. 创建并授权 uploads 目录(PHP 运行用户通常是 www-data 或 nginx)
|
||||
mkdir -p /path/to/chat/backend/uploads
|
||||
chmod -R 775 /path/to/chat/backend/uploads
|
||||
chown -R www-data:www-data /path/to/chat/backend/uploads
|
||||
|
||||
# 2. 确认 PHP 扩展已安装
|
||||
php -m | grep fileinfo
|
||||
|
||||
# 3. 确认 php.ini 上传限制
|
||||
php -i | grep -E 'upload_max_filesize|post_max_size'
|
||||
```
|
||||
|
||||
常见原因:
|
||||
- `uploads/` 目录不存在或 PHP 进程无写权限
|
||||
- Linux 上 MIME 识别为 `application/octet-stream`(代码已做扩展名兜底)
|
||||
- 未安装 `fileinfo` 扩展
|
||||
|
||||
### phpstudy 伪静态注意
|
||||
|
||||
**不要**选用「ThinkPHP」默认模板(会把所有请求转发到 index.php)。
|
||||
|
||||
请使用 `backend/public/nginx.htaccess` 中的规则,或完整配置见 `deploy/nginx.conf.example`。
|
||||
Reference in New Issue
Block a user