宝塔面板部署指南
在宝塔面板上部署本工具并安装各加密方案的 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 需重新安装。