webman后台

This commit is contained in:
2026-03-07 19:42:22 +08:00
parent 9ed4c1bc58
commit 83725aef88
181 changed files with 19115 additions and 1 deletions

157
docs/webman部署说明.md Normal file
View File

@@ -0,0 +1,157 @@
# Webman 部署说明(步骤 11
> 对应迁移文档「步骤 11入口与部署」
---
## 一、入口与启动
Webman **不使用** `public/index.php` 作为入口,而是通过命令行启动常驻进程:
```bash
# 进入项目目录
cd dafuweng-webman
# 启动(默认监听 8787 端口)
php start.php start
# 后台运行daemon 模式)
php start.php start -d
# 停止
php start.php stop
# 重启
php start.php restart
```
- 入口脚本:`start.php`(项目根目录)
- 默认端口:**8787**(在 `config/process.php` 中配置)
- 修改端口:编辑 `config/process.php``listen => 'http://0.0.0.0:8787'`
---
## 二、public 目录静态资源
`public/` 目录需保留以下内容,供 Nginx 直接提供或前端引用:
| 路径 | 说明 |
|------|------|
| `install/` | 安装向导index.html、assets 等) |
| `robots.txt` | 搜索引擎爬虫规则 |
| `favicon.ico` | 站点图标(可选) |
| `index.html` | 前端 SPA 入口(若已编译) |
**说明**`index.php``router.php` 为 ThinkPHP 入口Webman 不需要,无需复制。
---
## 三、Nginx 反向代理
将 Nginx 的 `root` 指向 Webman 的 **public** 目录,动态请求代理到 8787 端口。
### 配置示例
```nginx
upstream webman {
server 127.0.0.1:8787;
keepalive 10240;
}
server {
server_name 你的域名;
listen 80;
access_log off;
# 必须指向 webman 的 public 目录,不能是项目根目录
root /path/to/dafuweng-webman/public;
location / {
try_files $uri $uri/ @proxy;
}
location @proxy {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_pass http://webman;
}
# 拒绝访问 .php 文件Webman 无 PHP 入口)
location ~ \.php$ {
return 404;
}
# 允许 .well-known如 Let's Encrypt
location ~ ^/\.well-known/ {
allow all;
}
# 拒绝隐藏文件/目录
location ~ /\. {
return 404;
}
}
```
### 配置要点
- **root**:必须为 `dafuweng-webman/public`,否则可能暴露配置等敏感文件
- **try_files**:先查找静态文件,找不到再代理到 Webman
- **proxy_pass**:指向 `http://webman`upstream 8787
### HTTPS 示例
```nginx
server {
listen 443 ssl http2;
server_name 你的域名;
root /path/to/dafuweng-webman/public;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
try_files $uri $uri/ @proxy;
}
location @proxy {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_pass http://webman;
}
}
```
---
## 四、开发环境快速访问
不配置 Nginx 时,可直接访问:
- 接口:`http://127.0.0.1:8787/api/xxx``http://127.0.0.1:8787/admin/xxx`
- 静态:`http://127.0.0.1:8787/install/``http://127.0.0.1:8787/robots.txt`
Webman 会从 `public/` 目录提供静态文件。
---
## 五、安装检测说明
原 ThinkPHP 在 `public/index.php` 中做安装检测(无 `install.lock` 时跳转 `/install/`)。
Webman 迁移后:
- 若使用 Nginx安装检测逻辑需在 **路由/中间件****前端** 中实现
- 若直接访问 8787可在 `app/common/middleware` 或 Api/Backend 基类中增加安装检测
---
## 六、参考
- [Webman 官方文档 - nginx 代理](https://workerman.net/doc/webman/others/nginx-proxy.html)