1、下载php源码
下载地址:http://cn2.php.net/get/php-5.6.29.tar.gz/from/this/mirror
传到/usr/local/src/下
上传命令:rz -ay php.tar.gz
解压:tar -zxvf php.tar.gz
上图是我的php源码目录
2、进入到ext目录:
在这里我们只实现一个简单的例子:写一个两个数求和的这么一个扩展
新建一个预定义文件:vim sum_module.def
内容如下:
int sum_module(int x, int y)
保存并退出
注:如果有多个扩展的话,每个一行,每行行尾不要加分号
3、使用ext_skel工具创建扩展主体架构
./ext_skel --extname=sum_module --proto=sum_module.def
这里解释一下:extname就是我们以后用到的扩展名,proto是我们刚才新建的那个预定义文件
执行完了ext_skel之后,会在ext目录下生成一个以扩展名为名字的文件夹
4、修改config.m4文件
将如下三行的注释标签"dnl"去掉,修改后如下所示:
PHP_ARG_ENABLE(myfunctions, whether to enable myfunctions support,
Make sure that the comment is aligned:
[ --enable-myfunctions Enable myfunctions support])
保存退出
5、修改扩展原始文件sum_module.c
注:只有84、85、86这三行是我自己写的,其它的都是自动生成的。
84行:C语言的定义一个long型的变量
85行:c语言的求和
86行:ZEND API的返回语法
6、用已安装好的php去编译
7、configure
8、make
9、make install
10、打开php.ini把sum_module.so加进入,然后重启php-fpm:/etc/init.d/php-fpm restart
phpinfo查看已经有了这个扩展了。
11、php测试一下:
OK,没问题,结束!
参考:http://www.cunmou.com/phpbook/7.1.md