知识大全 Linux下C语言对PHP扩展

Posted 语言

篇首语:此刻打盹,你将做梦;而此刻学习,你将圆梦。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Linux下C语言对PHP扩展相关的知识,希望对你有一定的参考价值。

Linux下C语言对PHP扩展  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  一 搭建php环境

  下载php 源码 并解压

  编译安装 搭建php环境

  二 创建扩展项目

  进入源码目录

  cd php /ext/

   /ext_skel extname=my_ext

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

  三 更改配置和程序

  $ vi ext/my_ext/config m

  根据你自己的选择将

  dnl PHP_ARG_WITH(my_ext for my_ext support

  dnl Make sure that the ment is aligned:

  dnl [ with my_ext Include my_ext support])

  修改成

  PHP_ARG_WITH(my_ext for my_ext support

  Make sure that the ment 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 ment 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 ment is aligned:

  [ enable my_ext Enable my_ext support])

  $ vi ext/my_ext/php_my_ext h

  将

  PHP_FUNCTION(confirm_my_ext_piled); /* For testing remove later */

  更改为

  PHP_FUNCTION(say_hello);

  $ vi ext/my_ext/my_ext c

  将

  zend_function_entry php cpp_functions[] =

  PHP_FE(confirm_my_ext_piled NULL) /* For testing remove later */

  NULL NULL NULL /* Must be the last line in php cpp_functions[] */

  ;

  更改为

  zend_function_entry php cpp_functions[] =

  PHP_FE(say_hello NULL)

  NULL NULL NULL /* Must be the last line in php cpp_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

cha138/Article/program/PHP/201311/20822

相关参考