linux c 开发php7扩展

记录一下php7扩展开发的步骤

先做准备工作

1:在php.net下载源代码

2:安装php7

安装过程看以前文章


扩展名称为gradytest,下面开始操作

进入ext目录,执行

./ext_skel --extname=gradytest

linux c 开发php7扩展_第1张图片


生成gradytest扩展目录

linux c 开发php7扩展_第2张图片


修改config.m4内容

把下图中的dnl注释去掉,linux c 开发php7扩展_第3张图片


注:关于PHP_ARG_WITH和PHP_ARG_ENABLE的区别,config.m4里面已经有说明,看是否依赖第三方的库,咱们只是做测试使用,不依赖第三方库,就选择了PHP_ARG_ENABLE,去掉注释即可

linux c 开发php7扩展_第4张图片

:wq保存退出

继续执行

/usr/local/php7/bin/phpize

linux c 开发php7扩展_第5张图片 


./configure --with-php-config=/usr/local/php7/bin/php-config

linux c 开发php7扩展_第6张图片


make && make install

linux c 开发php7扩展_第7张图片


ll /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/  

linux c 开发php7扩展_第8张图片

php扩展已经生成了


编辑php.ini,然后php -m查看

linux c 开发php7扩展_第9张图片


linux c 开发php7扩展_第10张图片


然后用php脚本执行一下

vim gradytest.php

linux c 开发php7扩展_第11张图片


 php gradytest.php

linux c 开发php7扩展_第12张图片


这说明扩展ok了,confirm_gradytest_compiled方法是ext_skel生成的默认方法,可以检测是否成功

查看gradytest.c可看到confirm_gradytest_compiled是默认方法,已经注册

 cat gradytest.c 

linux c 开发php7扩展_第13张图片


linux c 开发php7扩展_第14张图片


注意,下面咱们按照confirm_gradytest_compiled写自己的方法gradytest

vim gradytest.c

编辑gradytest.c添加gradytest方法

linux c 开发php7扩展_第15张图片


linux c 开发php7扩展_第16张图片


接下来重新编译,安装,步骤如上面,不多说

linux c 开发php7扩展_第17张图片




自己的第一个扩展完成,其他更有意思的程序开发,需要深入php内核和linux下c语言的学习了


你可能感兴趣的:(PHP)