感谢支持
我们一直在努力

Linux下C语言对PHP扩展

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


  则大功告成

赞(0) 打赏
转载请注明出处:服务器评测 » Linux下C语言对PHP扩展
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏