夜间模式暗黑模式
字体
阴影
滤镜
圆角
主题色
编写一个简单的php扩展
本文最后更新于 121 天前,其中的信息可能已经有所发展或是发生改变。

0x00 从源码编译安装php

使用的环境:Ubuntu 18.04

从php.net上下载 php7.3.7的源码,解压到本地。

安装编译php所需要的依赖及软件:

进入php目录 执行

即可编译安装完成php

0x01 编写一个简单的php扩展

PHP 提供了一个工具可以生成扩展文件的框架,进入ext目录:

ext_skel.php

image-20190718102619619

可以看到这个工具的基本用法,这里我们使用

创建一个名为 annevi 的扩展,进入annevi文件夹,首先看配置文件 config.m4

config.m4

image-20190718102918978

PHP_ARG_WITH和PHP_ARG_ENABLE这两个宏用来配置configure选项,一个配置需要外部依赖的,另一个配置不需要。

php_annevi.h

image-20190718103255208

该文件就是我们编写的c扩展的头文件,在这里我们作了我们要编写的函数的声明。

annevi.c

该文件即是我们要编写的扩展的函数主体

annevi_functions[]数组中添加我们需要编写的函数名:PHP_FE(annevi_hello,NULL) 注意没有分号

image-20190718104017420

编写函数:

image-20190718105056259

编写了annevi_hello函数,该函数打印出两句话。

0x02 编译php扩展

首先使用phpize来生成编译配置文件:

编译扩展:

生成Makefile,使用make命令编译安装

0x03 启用扩展

查看phpinfo,找到php.ini文件的加载位置:

image-20190718105849304

将 php源码下的 php.ini-production复制到 /usr/local/php/lib

修改php.ini,添加extension=annevi.so 成功启用annevi扩展。

0x04 测试

image-20190718110214348
image-20190718110202206

0x05 过程总结

暂无评论

发送评论 编辑评论


				
上一篇
下一篇