正在加载...

Linux下C语言对PHP扩展

[ 2010/06/23 15:00 | by selboo ]

一,搭建php环境

下载php 5.2.6 源码 并解压

编译安装,搭建php环境

二,创建扩展项目

进入源码目录

cd php5.2.6/ext/
./ext_skel --extname=my_ext

创建名字为my_ext的项目,最终会生成my_ext.so

三,更改配置和程序

$ vi ext/my_ext/config.m4

根据你自己的选择将

dnl PHP_ARG_WITH(my_ext, for my_ext support,
dnl Make sure that the comment is aligned:
dnl [ --with-my_ext Include my_ext support])

修改成

PHP_ARG_WITH(my_ext, for my_ext support,
Make sure that the comment is aligned:
[ --with-my_ext Include my_ext support])

或者将

dnl PHP_ARG_ENABLE(my_ext, whether to enable my_ext support,
dnl Make sure that the comment is aligned:
dnl [ --enable-my_ext Enable my_ext support])

修改成

PHP_ARG_ENABLE(my_ext, whether to enable my_ext support,
Make sure that the comment is aligned:
[ --enable-my_ext Enable my_ext support])
$ vi ext/my_ext/php_my_ext.h



PHP_FUNCTION(confirm_my_ext_compiled); /* For testing, remove later. */

更改为

PHP_FUNCTION(say_hello);
$ vi ext/my_ext/my_ext.c



zend_function_entry php5cpp_functions[] = {
PHP_FE(confirm_my_ext_compiled, NULL) /* For testing, remove later. */
{NULL, NULL, NULL} /* Must be the last line in php5cpp_functions[] */
};

更改为

zend_function_entry php5cpp_functions[] = {
PHP_FE(say_hello, NULL)
{NULL, NULL, NULL} /* Must be the last line in php5cpp_functions[] */
};

在最后添加:

PHP_FUNCTION(say_hello)
{
zend_printf("hello world\n");
}

四,编译

$ cd my_ext
$ /usr/local/php/bin/phpize
ps: 如果出现:Cannot find autoconf.……的错误信息,则需要安装 autoconf (安装过程略)
$ ./configure --with-php-config=/usr/local/php/bin/php-config
$ make

这时会编译出 my_ext/modules/my_ext.so

五,配置php.ini

将my_ext.so放入/usr/local/php/ext/目录
$ vi php.ini

修改添加如下:

extension_dir = '/usr/local/php/ext/'
extension=my_ext.so

六,测试

$ vi test.php
say_hello();
?>
$ /usr/local/php/bin/php test.php
hello world.

则大功告成

http://blog.csdn.net/alexdream/archive/2008/03/24/2213344.aspx
http://devzone.zend.com/node/view/id/1022
http://blog.csdn.net/alin0725/archive/2007/04/08/1556460.aspx
http://devzone.zend.com/article/1024-Extension-Writing-Part-III-Resources 这篇文章不错,讲PHP如果管理连接符
http://www.phpbbchina.com/wiki/index.php/%E7%BC%96%E5%86%99PHP%E6%89%A9%E5%B1%95 中文教程
最后编辑: selboo 编辑于2011/02/23 11:38
Tags: , ,
,
发表评论
表情
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]