Files
dafuweng-buildadmin/docs/webman部署说明.md
2026-03-07 19:42:22 +08:00

158 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)