This commit is contained in:
Your Name
2026-07-14 10:00:34 +08:00
parent 01152efce6
commit 99a6ca0a77
59 changed files with 10014 additions and 0 deletions
+107
View File
@@ -0,0 +1,107 @@
# phpstudy 部署说明
## 1. 网站根目录
必须指向:
```
D:\web\chat\backend\public
```
**不能**指到 `backend/` 或项目根目录。
## 2. 编译前端
```powershell
cd D:\web\chat
npm run build
```
## 3. 伪静态 / 重写规则
### 若使用 Apachephpstudy 默认)
项目已自带 `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`