需为宝塔面板中对应PHP版本安装匹配的SourceGuardian扩展:先确认PHP版本、架构、ZTS/NTS等参数,再下载或编译ixed.so文件,复制至扩展目录并配置php.ini启用,最后重启PHP验证。

如果您在宝塔面板中部署了使用SourceGuardian加密的PHP应用,但页面报错提示“SourceGuardian loader not installed”或函数无法识别,则说明PHP环境未加载SourceGuardian扩展。以下是为宝塔面板中不同PHP版本安装SourceGuardian扩展的具体步骤:
一、确认PHP版本与架构信息
SourceGuardian扩展必须与当前PHP版本、编译方式(如ZTS/NTS)、线程安全模式及系统架构(x86_64/arm64)严格匹配。安装前需准确获取这些参数,避免扩展加载失败或PHP服务崩溃。
1、登录宝塔面板,进入【网站】→【PHP管理】,查看目标站点所用PHP版本(例如PHP 7.4、8.1等)。
2、点击对应PHP版本右侧的【设置】→【配置文件】,在打开的php.ini顶部或底部添加一行:,保存后新建一个info.php文件上传至网站根目录并访问,记录以下关键字段:PHP Version、Architecture、Thread Safety、Zend Extension Build。
立即学习“PHP免费学习笔记(深入)”;
3、SSH登录服务器,执行命令:/www/server/php/74/bin/php -v(路径中74需替换为实际PHP主版本号),确认是否含“ZTS”字样;再执行:/www/server/php/74/bin/php -i | grep "Compiler",判断是gcc还是clang编译。
二、下载并部署SourceGuardian Loader
SourceGuardian官方提供预编译的loader二进制文件,需按上一步获取的参数选择对应版本。loader文件本质是PHP扩展(.so),须复制到PHP扩展目录并启用。
1、访问SourceGuardian官网下载页(https://www.sourceguardian.com/loaders.html),根据PHP版本、架构、ZTS状态筛选对应loader压缩包(例如:loader-7.4-linux-x86_64-ts.so)。
2、使用wget命令下载(以PHP 7.4 x86_64 ZTS为例):wget https://www.sourceguardian.com/loaders/download/loaders.linux-x86_64/ts/ixed.7.4.lin -O /tmp/ixed.7.4.lin。
3、将文件复制到PHP扩展目录:cp /tmp/ixed.7.4.lin /www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/(路径中“no-debug-non-zts-20190902”需根据phpinfo中“extension_dir”值精确替换)。
4、修改PHP配置文件(/www/server/php/74/etc/php.ini),在末尾新增一行:extension="/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/ixed.7.4.lin"。
三、通过宝塔编译安装(适用于无预编译包或ARM架构)
当官方未提供匹配的预编译loader,或服务器为ARM64(如树莓派、鲲鹏)时,需在本地源码编译loader。此方法依赖PHP开发头文件和编译工具链,适合具备基础Linux编译经验的用户。
1、安装PHP开发包:yum install php-devel -y(CentOS)或apt-get install php7.4-dev -y(Ubuntu,版本号需匹配)。
2、下载SourceGuardian源码包(需注册官网获取)并解压,进入loader/src目录。
3、执行编译命令:/www/server/php/74/bin/phpize && ./configure --with-php-config=/www/server/php/74/bin/php-config && make && make install。
4、编译成功后,终端会输出扩展所在路径(如/usr/lib64/php/modules/ixed.7.4.lin),将其路径填入php.ini的extension指令中。
四、验证与故障排查
扩展启用后需验证是否正确加载,并排除常见运行时错误。部分加密文件还依赖特定PHP配置项,需同步检查。
1、重启PHP服务:bt 16(宝塔快捷命令)或在面板【PHP管理】中点击【重载配置】。
2、创建test.php文件,内容为:,访问该页面应返回bool(true)。
3、若仍报错“Unable to initialize module”,检查php.ini中是否重复启用了ixed扩展;若提示“Invalid library version”,说明loader与PHP版本不兼容,需更换对应版本。
4、确保php.ini中已关闭OPcache(opcache.enable=0)或设置opcache.enable_cli=0,因OPcache可能缓存加密文件的未解密字节码。











