Linux下C语言对PHP扩展Linux认证考试

文章作者 100test 发表时间 2010:02:10 19:01:23
来源 100Test.Com百考试题网


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

  


相关文章


linuxC程序中获取shell脚本输出Linux认证考试
利用netlink统一外设异步事件传递Linux认证考试
Linux系统安装php扩展cURLLinux认证考试
跟我学LFSLiveUSB制作Linux认证考试
Linux下C语言对PHP扩展Linux认证考试
linux内核函数kernel_threadLinux认证考试
解决Linux磁盘空间满的“软”办法Linux认证考试
关于linux下磁盘空间无形被占用的问题Linux认证考试
MySQL整个数据库的备份与还原Linux认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛