3.8 KiB
3.8 KiB
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.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 端口。
配置示例
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 示例
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 基类中增加安装检测