问题描述
从网上下载了一套PHP聊天室源码,部署在Winserver中的Apache服务器,打开文件 common.inc.php,发现一串不知所云的代码:
![](https://www.jiloc.com/wp-content/uploads/2021/06/3a7fd7f58d1bd1eb5a6fbdab85a68638-960x84.png)
报错信息说的是 sg_load 函数没有找到,查找一番资料后,发现 sg_load 是 SourceGuardian 扩展提供的全局函数,运行环境需要这个扩展才能执行这段代码。SourceGuardian 提供 php 源码文件的加密,而运行这些加密 php 文件则需要安装扩展:SourceGuardian loader。
SourceGuardian loader 安装过程
浏览器中打开 https://www.sourceguardian.com/loaders/download.php,输入服务器上打印了 phpinfo 信息的 php 文件地址:
![](https://www.jiloc.com/wp-content/uploads/2021/06/200a5152ff93f4bc0a68a9260394bba2-960x738.png)
在线的检查脚本会根据 phpinfo 的信息,提取到 php 版本信息和扩展路径,然后提示你需要的操作。例如它提示我 extension_dir 应设置为绝对路径而非相对路径:
![](https://www.jiloc.com/wp-content/uploads/2021/06/d473cda5559addc3a5c82d6b3286b648.png)
![](https://www.jiloc.com/wp-content/uploads/2021/06/30827fc44e22e8ae681e57a63ee37d05.png)
那就改呗,在 php.ini 中找到 extension_dir,将原来的相对路径 ./ext 改为绝对路径。重启 Apache 然后重新执行检测:
到这一步它提示我需要:
- 下载 ixed.5.4.win
- 安装到 php 扩展的 ext 目录
- 在 php.ini 中加载它:extension=ixed.5.4.win
- 重启 Apache
全部修改完成后,在 phpinfo 看到了 SourceGuardian 的相关信息,说明扩展已经生效了:
![](https://www.jiloc.com/wp-content/uploads/2021/06/68ac56b53e3854373a6c23568699a194.png)
满怀期待的再次访问网站。依旧报错,不过这一次不是找不到 sg_load 函数了,再次访问就一切OK~~
发表回复