| 依赖 | 是否必需 | 说明 |
|---|---|---|
| Linux x86_64 / Windows x64 | 必需 | Linux 侧 loader 是 x86_64 ELF;Windows 侧只做加密(用自带的 php.exe) |
| Python / PHP | 不需要 | 发行包自带:runtime/python + runtime/php/<版本>(含 opcache) |
| Linux 的 glibc / 任何系统库 | 不需要 | 自带 runtime/lib(含 glibc 与全部依赖 .so),用自带的 ld.so 启动 |
| Windows 的 VC++ 运行库 | 不需要 | 自带 vcruntime140*.dll |
授权文件 license.json | 必需 | 见 license/README.md;没有有效授权无法打包 |
先自检:
./bin/swcenc doctor # Linux
bin\swcenc.cmd doctor # Windows
doctor 会打印:授权状态、内置运行时的版本数量、各 (loader, PHP) 组合能不能做 strong 加密。
先看它,再打包。
tar xzf swcenc-2.0.0-linux-x86_64.tar.gz -C /opt
/opt/swcenc-2.0.0-linux-x86_64/bin/swcenc doctor
Windows 直接解压 zip 到任意目录(路径尽量不要带空格和中文,虽然已做处理,
但少一层变量少一份麻烦):
swcenc-2.0.0-win64\bin\swcenc.cmd doctor
Windows 上不要用「复制到 C:\\Program Files」后直接双击运行 —— 用命令行调用即可。
sudo ./install.sh # 默认 -> /opt/swcenc
sudo ./install.sh /usr/local/swcenc
安装脚本做三件事:复制到目标目录、建 /usr/local/bin/swcenc 软链、
建 SWC_CAP_CACHE 用的可写缓存目录 /var/cache/swcenc。
之后任何目录直接:
swcenc doctor
./bin/swcenc machine # 打印本机机器码,发给签发者
# 拿到 license.json 后:
cp license.json ./license/license.json
./bin/swcenc license # 确认「✅ 授权有效」
加密机(跑 swcenc 的这台):什么都不用装(发行包自带运行时)+ 一份有效授权。
目标机(跑加密产物的那台)只需要:
; php.ini —— 版本必须与加密时选的 PHP 一致,代数必须与 --loader-version 一致
extension=swoole_loader83_nts.so
loader 从发行包的 engine/loader31 / engine/loader32 里取,放到目标机的
PHP 扩展目录即可(engine/loaderpro31 / loaderpro32 对应 --pro 产物)。
Q:doctor 显示「未找到授权文件」怎么办?
按提示把签发的 license.json 放进 license/ 目录,或用 --license 指定路径。
Q:内核太老会不会跑不起来?
自带的 glibc 需要内核 ≥ 3.2(2012 年之后的都满足)。实测在 Alpine(musl)
上直接可用 —— 因为 glibc 也是自带的。
Q:能不能装在容器里?
能跑,但机器码里有网卡 MAC,容器重建就会变,会一直要重新授权。
建议装在固定的物理机 / VPS 上。
docs/INSTALL.md)。
下载发行包后可离线查看同样的内容。