宝塔面板部署指南

在宝塔面板上部署本工具并安装各加密方案的 Loader 扩展

基础部署(宝塔面板)

1

创建站点

宝塔面板 → 网站 → PHP项目 → 添加站点,选择 PHP 8.2

2

上传文件

D:\sg 下所有文件上传到站点根目录(如 /www/wwwroot/yourdomain.com/

3

配置运行目录

在宝塔「网站设置」中,将运行目录设为站点根目录

4

访问测试

浏览器访问域名,应看到本工具首页

安装 Source Guardian Loader

Source Guardian 是商业加密产品,需要购买 License。Loader 可从 官方下载

Linux(宝塔默认环境)

# 1. 下载对应 PHP 8.2 的 Loader
cd /tmp
wget https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64.tar.gz
tar -xzf loaders.linux-x86_64.tar.gz

# 2. 复制 ixed.8.2.lin 到 PHP 扩展目录
cp ixed.8.2.lin /www/server/php/82/lib/php/extensions/no-debug-non-zts-20220829/

# 3. 编辑 php.ini 添加扩展
echo "extension=ixed.8.2.lin" >> /www/server/php/82/etc/php.ini

# 4. 重启 PHP
/etc/init.d/php-fpm-82 restart

# 5. 验证
php82 -m | grep SourceGuardian

Windows

# 将 ixed.8.2.win 复制到 PHP ext 目录
# 在 php.ini 中添加:
extension=ixed.8.2.win

# 重启 Web 服务器

安装 IonCube Loader

IonCube 同样为商业产品。Loader 可从 官方下载

Linux(宝塔)

# 1. 下载 IonCube Loader
cd /tmp
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar -xzf ioncube_loaders_lin_x86-64.tar.gz

# 2. 复制 PHP 8.2 Loader
cp ioncube/ioncube_loader_lin_8.2.so /www/server/php/82/lib/php/extensions/no-debug-non-zts-20220829/

# 3. 配置 php.ini
# zend_extension 必须放在第一位
echo "zend_extension=/www/server/php/82/lib/php/extensions/no-debug-non-zts-20220829/ioncube_loader_lin_8.2.so" >> /www/server/php/82/etc/php.ini

# 4. 重启 PHP
/etc/init.d/php-fpm-82 restart

# 5. 验证
php82 -v | grep ionCube

安装 PHP Beast(开源)

# 1. 克隆源码
cd /tmp
git clone https://github.com/liexusong/php-beast.git
cd php-beast

# 2. 编译安装
phpize82
./configure --with-php-config=/www/server/php/82/bin/php-config
make && make install

# 3. 配置 php.ini
echo "extension=beast.so" >> /www/server/php/82/etc/php.ini

# 4. 重启
/etc/init.d/php-fpm-82 restart

安装 Swoole Compiler

Swoole Compiler 是商业产品,提供30天免费试用。下载地址: Swoole Compiler
# 下载对应 OS/PHP 版本的 .so 文件
# 复制到扩展目录,在 php.ini 中添加 extension=swoole_compiler.so
# 重启 PHP-FPM

GOTO 加密工具

GOTO 有多种第三方实现,请从可信渠道获取。本工具内置演示模式,直接在浏览器中展示混淆效果。

命令行使用示例

# 混淆 PHP 文件
php goto.php encode input.php output.php

# 批量混淆目录
php goto.php encode ./src ./dist

# 指定混淆强度
php goto.php encode --level=high input.php output.php

Nginx 配置(宝塔)

宝塔默认使用 Nginx,在「网站设置」→「配置文件」中添加:

# 在 server {} 块中添加

# 禁止访问敏感文件
location ~* /(encrypt.php|\.env|\.git|composer\.json|composer\.lock) {
    deny all;
    return 403;
}

# 伪静态(如果需要)
location / {
    try_files $uri $uri/ /index.php?$query_string;
}

# PHP 处理
location ~ \.php$ {
    fastcgi_pass unix:/tmp/php-cgi-82.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

# 静态资源缓存
location ~* \.(css|js|jpg|jpeg|png|gif|ico|svg|woff2)$ {
    expires 30d;
    add_header Cache-Control "public, immutable";
}

常见问题

Q: PHP 8.2 下哪个 Loader 最稳定?

A: Source Guardian 和 IonCube 均对 PHP 8.2 有良好支持。SG16 专门为 PHP 8.x 优化,推荐优先考虑。

Q: 混淆和加密有什么区别?

A: 加密(SG/IonCube)将源码编译为字节码,需要 Loader 运行时解密;混淆(GOTO)只改变源码可读性,不改变运行方式,无需 Loader。

Q: 加密后性能会下降吗?

A: SG/IonCube 字节码方案会有 5-20% 的性能开销,但可通过 OpCache 缓解。Swoole Compiler 编译后性能反而可能提升。

Q: 能完全防止逆向吗?

A: 没有100%安全的加密方案。SG/IonCube 的字节码加密安全性较高,配合 License 管理能有效防止非授权使用。GOTO 混淆的保护级别较低。

Q: 宝塔面板如何切换 PHP 版本?

A: 宝塔 → 软件商店 → 搜索 PHP → 安装对应版本。然后在网站设置中切换 PHP 版本,注意 Loader 需重新安装。