2.9 KiB
2.9 KiB
phpstudy 部署说明
1. 网站根目录
必须指向:
D:\web\chat\backend\public
不能指到 backend/ 或项目根目录。
2. 编译前端
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):
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 错误
在服务器上执行:
# 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。