>[info]###CentOS下开发自己的PHP扩展(基于PHP5.6.29)<b/>
作者 : fankey <6424051@qq.com>
时间 : 2017-02-21
文章参考1 : http://blog.csdn.net/hguisu/article/details/7381978
![](https://box.kancloud.cn/1bf14a61b788d9cea9d04e11259dd56e_991x452.png)
![](https://box.kancloud.cn/367958ed2be49d7343eed5c76cc23430_584x288.png)
![](https://box.kancloud.cn/68a5bbfe6b6cf417d327f6c66bbc6fc3_760x323.png)
<br/><br/>
###1001.首先创建一个名为 fankey_ext的扩展
运行如下命令 :
<br/>
`./ext_skel --extname=fankey_ext`
<br/><br/>
PHP官方 ext_skel 解释参考: http://php.net/manual/zh/internals2.buildsys.skeleton.php
<br/><br/>
得到下图结果 : <span style='color:green;'> (成功后会在扩展目录ext下生成一个 fankey_ext 的目录 )</span>
<br/><br/>
![](https://box.kancloud.cn/47b9b4fcab64ed45c5e1b3f43cee99db_704x439.png)
![](https://box.kancloud.cn/285af59fc6eea88cbaa925419b692271_561x233.png)
![](https://box.kancloud.cn/df6efc935cb03d65ccc23d61e3d7f8fc_721x294.png)
<br/><br/>
###1002.修改扩展的配置文件 config.m4
<br/>
PHP官方 config.m4 解释参考: http://php.net/manual/zh/internals2.buildsys.configunix.php
<br/><br/>
修改前:
![](https://box.kancloud.cn/8cface9bb1c628212ffc8818c2e343c4_740x299.png)
修改后:
![](https://box.kancloud.cn/40ce5a8e603eafa51235c2da0d45f905_654x284.png)
<br/><br/>
###1003.修改扩展核心源码C语言文件 fankey_ext.c 实现我们想要的功能
<br/><br/>
fankey_ext.c 下新增一个自定义函数 fankey_hello();
![](https://box.kancloud.cn/42b03acaaae8004787913ece93a15372_762x302.png)
fankey_ext.c文件最底部新增函数的实现
![](https://box.kancloud.cn/75a64aefdb81f9b49c21176cc33f435c_664x303.png)
<br/><br/>
###1004.修改扩展核心源码头文件 php_fankey_ext.h ,在文件中新增函数fankey_hello的声明
![](https://box.kancloud.cn/26ca50b53180fc800f3f080b435677fe_515x203.png)
<br/><br/>
###1005.编译安装自定义的 fankey_ext 扩展
<br/>
第一步:执行 `phpize`
![](https://box.kancloud.cn/276114cf95b470b1a5414a946e2a9ee1_770x370.png)
![](https://box.kancloud.cn/45e8b78250ff1d0832f6c771ad2bee20_851x254.png)
<br/>
第二步:执行 `./configure --with-php-config=/usr/local/php/bin/php-config`
![](https://box.kancloud.cn/4fa2230a51adbb1ea72340fa1d430208_984x274.png)
<br/>
第三步 : 执行 `make && make install`
![](https://box.kancloud.cn/d33d61a51afb9ff577bf284db5577dd0_1041x285.png)
<br/>
第四步:将扩展写入到 php.ini文件中
![](https://box.kancloud.cn/f7df2831c9b80e96428466bdf444f70c_583x249.png)
第五步 : 重启php => `service php-fpm restart`
![](https://box.kancloud.cn/c86adf5d4862489dbc7529e454b6cb70_606x78.png)
然后在php脚本文件中测试我们的扩展
![](https://box.kancloud.cn/295c674b7b3694900569e4487290b032_863x347.png)
<br/><br/>
![](https://box.kancloud.cn/4625a6cdcc5156d6b26c71f1d4ce8954_601x171.png)
<br/><br/>
示例代码:
![](https://box.kancloud.cn/9f7edd1560876989bc0146e2d8eae857_418x114.png)
<br/><br/>
运行效果:
![](https://box.kancloud.cn/7f799a1d68867a36e22239c10299e06a_598x107.png)
<br/>
<br/>
源码打包下载地址 : http://test.blog365.cn/ext/fankey_ext.zip
<br/>
<br/>
<br/>
(结束)