点击这里给我发消息 点击这里给我发消息
首页 > 行业资讯 > linux>详细内容

Linux下C语言对PHP扩展

添加时间:2010-3-18
    相关阅读: 程序 PHP C语言 项目

一,搭建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

  <?php

  say_hello();

  ?>

  $ /usr/local/php/bin/php test.php

  hello world.

  则大功告成

本文作者:未知
咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册