二月 24th, 2009php扩展开发(linux下)
此文章来源于后羿之弓,转载请注明出处
前两天又有一朋友问关于php扩展的开发,在此特作记录,本方法只做不需要编译时加进去的扩展,至于需要编译进去的网上教程众多,在此不述。
1.找到php源程序目录的ext目录里的ext_skel文件,如果没有可以下载php源码找到,要的是ext目录,单纯的ext_skel文件是不够的
2.新建扩展,例hello
- ./ext_skel --extname=hello.
(两个-,输错它会提示),命令成功后会生成些许文件。
3.修改config.m4,找到以下三行
- dnl PHP_ARG_WITH(hello, for hello support,
- dnl Make sure that the comment is aligned:
- dnl [ --with-hello Include hello support])
去掉前面的dnl.
4.修改hello.c(hello为扩展的名字),找到里面的PHP_FUNCTION函数体里面的内容修改后就ok了
5.在目录下执行phpize
6.
- ./configure --with-php-config=/data/software/php5/bin/php-config
,在此php-config如果在环境变量里那就不用加了,如果它提示找不到那你就得指得php-config的目录了,如果你还有其它要依赖的库,那就–with-库=XXXX就行了。
7.
- make
8.
- make test
9.
- make install
如果没有权限就提权后再执行(结果会返回php扩展目录,如果正确,那扩展已经进去了,如果不正确,则copy hello.so到扩展目录里)
10.修改php.ini,加入extension=hello.so;
11.重启php.查看phpinfo.如果出现了hello的enable信息就可以了。
12.本已经到此结束,但写文件测试一下,突然发现要调什么函数呢?如果只是按上面的步骤下来是没有改函数的,则为confirm_hello_compiled.尝试在php里面调一下confirm_hello_compiled吧。如果要改名就找到程序(.c和.h)里的confirm_hello_compiled修改就ok了。