swcenc 加密器 · 离线加密器发行与授权中心
客服邮箱 admin@xueyuanpie.com

安装

依赖

依赖是否必需说明
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」后直接双击运行 —— 用命令行调用即可。


方式二:安装到 /opt 并建全局命令(Linux)

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)。 下载发行包后可离线查看同样的内容。