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

3.8 KiB
Raw Blame History

Webman 部署说明(步骤 11

对应迁移文档「步骤 11入口与部署」


一、入口与启动

Webman 不使用 public/index.php 作为入口,而是通过命令行启动常驻进程:

# 进入项目目录
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.phplisten => 'http://0.0.0.0:8787'

二、public 目录静态资源

public/ 目录需保留以下内容,供 Nginx 直接提供或前端引用:

路径 说明
install/ 安装向导index.html、assets 等)
robots.txt 搜索引擎爬虫规则
favicon.ico 站点图标(可选)
index.html 前端 SPA 入口(若已编译)

说明index.phprouter.php 为 ThinkPHP 入口Webman 不需要,无需复制。


三、Nginx 反向代理

将 Nginx 的 root 指向 Webman 的 public 目录,动态请求代理到 8787 端口。

配置示例

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://webmanupstream 8787

HTTPS 示例

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/xxxhttp://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 基类中增加安装检测

六、参考