php扩展开发

Posted by 行如风 Blog on June 18, 2015
1
2
3
4
5
6
7
写作说明:以前总想做些底层的东西,
由于各种原因(大部分都是找工作,找房子这些“琐碎”的事,
同时也没那技术,呵呵),加上工作忙,都给耽搁了,不能再等了,
再忙每天都要抽出一段时间学习。
ps:我也是刚摸到门,如果有不正确的地方,希望大家指正,
开一个“不受约束的”博客,确实能提高学习动力,
不用再担心“对不起,您发表的文章含有敏感信息...”这种无聊的事了。

2015-06-18日更新 —————-

php扩展:

1
2
3
4
5
6
7
8
9
10
11
12
首先下载个虚拟机(当然不能在工作机上玩了),装个linux。
下载好php,nginx。安装配置好后(不会的自行google),开始了。
我的虚拟机以前装过php,版本5.4.28。
扩展开发都在ext目录。同时php提供了搭建扩展的各种环境,不多说,
文章中的代码摘自[鸟哥博客](http://www.laruence.com/ "鸟哥")。
实现的扩展是:输入一个字符串和重复的次数n,把该字符串重复n次连接后输出。如输入"ldm",3.则输出"ldmldmldm"

1.进入ext目录,建立myfunctions.def,内容为:
string self_concat(string str, int n)
./ext_skel --extname=myfunctions --proto=myfunctions.def
上面说的是扩展名和提供接口的定义。
2.进入myfunctions目录,修改config.m4,去掉这几行的注释,如下图

Alt text

1
3.修改myfunctions.c:如下图

Alt text

1
2
3
4
5
4./usr/local/php/bin/phpize
5./configure --with-php-config=/usr/local/php/bin/php-config
6.在php.ini里加入生成的.so文件。重启。
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
可以通过cli模式的php -m查看模块