記一次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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM