Webman AOT Builder

v0.4.10 版本
2026-10-11 版本更新时间
66 安装
2 star

Webman AOT Builder:Mac / Windows 构建 Linux 全静态程序

将 Webman / SaiAdmin 后端项目编译为 Linux amd64 全静态程序。工具安装在 macOS Apple Silicon 或 Windows x64 开发机,构建生成的整个 dist-aot/ 部署到 Linux;目标机无需安装 PHP。

SaiAdmin 的适用依赖与限制见兼容说明。

方式一:Composer

开发机需 PHP 8.1+、Composer 2.5.3+。先按目标项目自身要求安装 Composer 依赖,备好 vendor/,在 macOS 终端或 Windows PowerShell 运行:

composer global require supdger/webman-aot-builder

首次 Composer 询问插件信任时输入 y,自动进入引导。引导自动识别开发机系统,准备对应完整运行时;选择开始或导入完整包,再输入或拖入 Webman / SaiAdmin 后端根目录的完整路径。该目录须包含 composer.json、composer.lock、start.php 和 app/。

网络受阻时,可从最新完整发行页下载对应开发机的完整包,在同一菜单选择导入并输入或拖入包路径。构建及本机校验成功后显示 dist-aot/ 位置;包安装与项目流程分别显示结果,Composer 后续安全审计照常执行。下次只需运行:

composer global exec -- webman-aot guide

方式二:安装包

适用于 macOS Apple Silicon 或 Windows x64 开发机。项目须事先按自身要求安装 Composer 依赖并备好 vendor/;从最新完整发行页下载与你的开发机匹配的 setup:

  • Mac:文件名以 macos-arm64-setup.zip 结尾,解压后双击其中的 .command。
  • Windows:文件名以 windows-x86_64-setup.cmd 结尾,双击运行 .cmd。

按菜单选轻量包或完整包,确认安装位置及 PATH 影响,再选择“构建项目”,输入或拖入已备好依赖的后端根目录。轻量包首次构建需联网下载组件;完整包含编译组件,自己的项目依赖仍须预先准备。构建及本机校验成功后显示 dist-aot/ 位置。手动下载或离线安装见安装指南。

方式三:源码编译

适用于需要从源码制作工具包的开发者;开发机仍须为 macOS Apple Silicon 或 Windows x64,构建所需锁定材料需联网准备,目标项目的 Composer 依赖须提前安装。到GitHub 仓库选择 Code → Download ZIP,解压并进入包含 build.command 与 build.cmd 的源码根目录。

Mac 在终端运行:

sh ./build.command

Windows 在 PowerShell 运行:

.\build.cmd

入口准备锁定材料后提供轻量包、完整包选择,制作并校验安装包,再询问是否安装。确认安装后选择“构建项目”,输入或拖入已备好依赖的后端根目录;构建及本机校验成功后显示 dist-aot/。构包成功和项目构建成功会分别显示,取消安装时生成包保留在显示的目录。详细前提和故障恢复见源码构建指南。

断点续编与全量重建

0.4.0 新增断点续编。项目构建默认复用输入一致、大小及 SHA-256 校验通过的完整编译单元;未完成或损坏的单元从头编译。构建失败时先修正显示的错误,再选择 1 继续编译;2 重选目录、3 全量重建此目录、0 结束。也可在项目根目录再次运行 webman-aot build。

需要全部单元重新编译时运行 webman-aot build --fresh。这会跳过缓存复用,不清理旧缓存及失败构建目录;它们会继续占用磁盘。每轮仍重新链接并校验最终产物,成功时显示 dist-aot/ 位置;成功后清理本轮临时构建目录。

Mac 实际安装包测试覆盖 109 单元全编、相同输入全部复用、损坏缓存重编、源码变化及全量重建。Windows CI 实际安装包测试覆盖轻量/完整包安装、构建与自动校验、缓存复用、损坏缓存、源码变化、全量重建及模拟断电、终止本次构建进程及编译子进程后的恢复;恢复轮复用 14 个完整单元、重编其余 95 个,重新链接并校验成功。上述安装包回归与 Windows CI 的详细范围见验证记录;下方保留用户实机成果。

实机构建与 Linux 启动记录

2026-09-30,用户在 macOS Apple Silicon 与 Windows x64 实机构建 SaiAdmin,并分别将产物复制到 Linux x86_64 服务器启动。Mac、Windows 是构建宿主,最终程序面向 Linux。以下为真实终端关键输出,用户名已脱敏。

Mac:2063 单元构建及本机校验

Package contents SHA-256 verified.
webman-aot 0.3.2
[2063/2063] 100% extension-webman_server.cc
Successfully compiled 2063 files
[成功] 构建项目,耗时 582.3 秒,退出码 0
[成功] 校验本次项目产物,耗时 0.8 秒,退出码 0
项目构建与校验成功。

Mac 实机构建成功

用户将 Mac 构建产物部署到 Alibaba Cloud 3 (Soaring Falcon) x86_64 (Py3.7.16) 服务器后,实际监听 8788,8 个 worker 启动。Py3.7.16 是用户提供的服务器环境标记,不是程序运行依赖;PHP 版本见启动日志:

Workerman/5.2.2         PHP/8.4.25 (JIT off)          Linux/5.10.134-16.3.al8.x86_64
select      tcp         <用户>      webman      http://0.0.0.0:8788    8            [OK]
Press Ctrl+C to stop. Start success.

Mac 产物在 Linux 启动

Windows:2063 单元构建及 CentOS 7 启动

[2063/2063] 100% extension-webman_server.cc
Successfully compiled 2063 files
[成功] 构建项目,耗时 2142.9 秒,退出码 0
[成功] 校验本次项目产物,耗时 1.3 秒,退出码 0
项目构建与校验成功。

Windows 实机构建成功

复制到 CentOS 7 后,实际监听 1717,4 个 worker 启动:

Workerman/5.2.2         PHP/8.4.25 (JIT off)          Linux/3.10.0-1160.95.1.el7.x86_64
select      tcp         <用户>      webman      http://0.0.0.0:1717    4            [OK]
Press Ctrl+C to stop. Start success.

Windows 产物在 CentOS 7 启动

两台开发机完成构建与本机产物校验,两个 Linux 环境均报告启动成功。启动仍有兼容性告警,HTTP、数据库和业务接口尚未验收。详细过程见实机测试记录。

文档与反馈

赞助商