记一次SourceGuardian加密的PHP扩展安装过程

一、问题描述#

 从网上下载了一套PHP聊天室源码,部署在Winserver中的Apache服务器,运行报错如下:

 

打开文件 common.inc.php,发现一串不知所云的代码:

 

报错信息说的是 sg_load 函数没有找到,查找一番资料后,发现 sg_load 是 SourceGuardian 扩展提供的全局函数,运行环境需要这个扩展才能执行这段代码。SourceGuardian 提供 php 源码文件的加密,而运行这些加密 php 文件则需要安装扩展:SourceGuardian loader。

二、SourceGuardian loader 安装过程#

浏览器中打开 https://www.sourceguardian.com/loaders/download.php,输入服务器上打印了 phpinfo 信息的 php 文件地址:

 

在线的检查脚本会根据 phpinfo 的信息,提取到 php 版本信息和扩展路径,然后提示你需要的操作。例如它提示我 extension_dir 应设置为绝对路径而非相对路径:

 

那就改呗,在 php.ini 中找到 extension_dir,将原来的相对路径 ./ext 改为绝对路径。重启 Apache 然后重新执行检测:

 

 

到这一步它提示我需要:

  1. 下载 ixed.5.4.win
  2. 安装到 php 扩展的 ext 目录
  3. 在 php.ini 中加载它:extension=ixed.5.4.win
  4. 重启 Apache

全部修改完成后,在 phpinfo 看到了 SourceGuardian 的相关信息,说明扩展已经生效了:

 

满怀期待的再次访问网站。依旧报错,不过这一次不是找不到 sg_load 函数了,而是该扩展不支持 php5.4.45 版本 -_-||

没办法,只好切换 php 版本到5.6,然后重新执行上述步骤,再次访问就一切OK~~

参考:#

最后附一个补充文章,如何写一个PHP扩展:https://devzone.zend.com/303/extension-writing-part-i-introduction-to-php-and-zend

posted @   Azure沫  阅读(16391)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示
CONTENTS