坚持
  • 微信

当前位置:首页 > 应用服务 > WINDOWS系统 >

Windows 端编译 azhenc 扩展:以 Win10+PHP8.0.25 为例

作者:管理员 时间:1970-01-01 阅读数: 1695人阅读

    AZHENC是本人用C写的一个PHP加密扩展,支持PHP7.0-PHP8.1的代码加密。

    1、安装 Visual Studio

    php7.0、php7.1 版本依赖 vc14 需要提前安装 visual studio 2015

    php7.2、php7.3、php7.4 版本依赖 vc15 需要提前安装 visual studio 2017

    php8.、php 8.1 版本依赖 vs2016 需要提前安装 visual studio 2019

    注:使用高版本的visual studio 2022,虽然可以兼容,但是编译会出现各种奇葩问题,无法解决,建议使用对应版本编辑器进行编译。本人用的 win10 操作系统所以 sdk 选的是 win10 的,如果是其他版本的 windows,选择对应的 sdk 安装即可。

    VS2015 所需模块:

    vs2015.jpg

    VS2017 所需模块:

    vs2017.jpg

    VS2019 所需模块:

    vs2019.jpg

    2、下载 php 的 windows 源码包

    windows 源码包下载地址:https://windows.php.net/downloads/releases/archives/

    3、下载 windows 端构建 PHP 的工具包(php-sdk-binary-tools-master【版本2.2.1-dev】),文章下方提供下载,也可搜索去微软官方下载。

    

    二、开始构建 Windows 端的 azhenc 扩展

    1、解压 PHP 的工具包,运行 CMD 并将目录切换到工具包的根目录(例:E:\php-sdk)

    image

    2、运行对应版本的 bat 文件,此处为 php8.0.25 编译 64 位版本扩展,需要运行phpsdk-vs16-x64.bat,出现下图所示结果说明正常否则说明对应版本所需的 Visual Studio 未正确安装。

    image

    3、运行 phpsdk_buildtree phpdev,成功后会在工具包的根目录创建如下(phpdev\vc15\x64)结构的目录并自动切换到该目录下

    cmd.jpg

    4、将 php 源码包复制到上一步操作生成的目录下并解压,与 deps 目录平级。

    image

    5、将 azhenc 扩展源码复制到 php 源码包目录下的 ext 目录,结构如下:

    image

    6、回到 cmd 窗口,将路径切换到 php 源码包目录下并执行 buildconf

    image

    7、执行 configure –help,如果出现如下提示,再次执行一遍 configure –help 即可

    image

    8、configure –help 的结果中如果出现下图信息,则说明 azhenc 扩展可用

    image

    9、配置并编译生成 dll 文件

    NTS 版本扩展配置命令:configure --disable-all --enable-cli --enable-azhenc=shared --disable-zts

    TS 版本扩展配置命令:   configure --disable-all --enable-cli --enable-azhenc=shared

    ①构建 NTS 版 dll:

    运行:configure --disable-all --enable-cli --enable-azhenc=shared --disable-zts

    image

    执行 nmake,成功后会在源码包如下位置生成 dll 文件

    image

    ②构建 TS 版 dll,依次执行:configure --disable-all --enable-cli --enable-azhenc=shared

    执行 nmake,成功后会在如下位置生成 TS 版的 dll 文件

    image

    如果编译 32 位的,则生成目就为少了 x64 这层目录,直接在源码包根目录下产生 Release与 Release_TS 目录

    image


image

    其他版本不再赘述,可用的dll文件均可按上述方法生成,请根据自己的PHP版本选择生成对应的dll。

    10、使用

    将编译好的文件 php_azhenc.dll 加入到对应php版本的配置项(修改php.ini,在最下方写入 extension = php_azhenc.dll),重启 PHP 服务,然后在cmd命令输入php -m查看

    image

    azhenc扩展安装后,便可以进行加密php,在运行时也会自动解密php。输入php azhenc.php dir,这样即可加密dir 目录下的所有 php 文件,PHP 在运行它们时会自动解密

    

上一篇:

下一篇: