开发php扩展

1.源码安装php

  wget http://cn2.php.net/get/php-5.2.13.tar.gz/from/cn.php.net/mirror


    tar zxvf php-5.2.13.tar.gz

    cd php-5.2.13

  ./configure --prefix=/csdn_verify_auth/php --with-config-file-path=/csdn_verify_auth/php/etc

  make ZEND_EXTRA_LIBS='-liconv'

  make install

  cp php.ini-dist /csdn_verify_auth/php/etc/php.ini

    在./configure时可能提示

error: xml2-config not found. Please check your libxml2 installation

执行 apt-get install libxml2-dev

make ZEND_EXTRA_LIBS='-liconv'可能会提示  /usr/bin/ld: cannot find -liconv

     iconv是gun开发的一个编码转换的工具

      需要手工安装一下 

      libiconv下载地址:http://www.gnu.org/software/libiconv/

      安装后要在/usr/lib下建立一个 名为libiconv.so到/usr/local/lib/libiconv.so.2.xxx的软连接  ln -s /usr/local/lib/libiconv.so.2.xx libiconv.so

2.修改扩展路径

extension_dir = "/csdn_verify_auth/php/lib/php/extensions/no-debug-non-zts-20060613"

不修改扩展路径的话把生成的so包拷贝到默认扩展路径也是可以的。

3.创建扩展项目

  

  cd /csdn_verify_auth/php-5.2.13/ext/

  ./ext_skel --extname=csdn_verify_auth

4.更改配置和扩展程序开发

  vi ext/csdn_verify_auth/config.m4

  根据你自己的选择将

  dnl PHP_ARG_WITH(csdn_verify_auth, for csdn_verify_auth support,

  dnl Make sure that the comment is aligned:

  dnl [ --with-csdn_verify_auth Include csdn_verify_auth support])

将dn1去掉

 vi ext/csdn_verify_auth/php_csdn_verify_auth.h

 

  将

  zend_function_entry php5cpp_functions[] = {

  PHP_FE(confirm_csdn_verify_auth_compiled, NULL) /* For testing, remove later. */

  {NULL, NULL, NULL} /* Must be the last line in php5cpp_functions[] */

  };

  更改为

  zend_function_entry php5cpp_functions[] = {

  PHP_FE(csdn_verify_auth, NULL)

  {NULL, NULL, NULL

  在最后添加:

  PHP_FUNCTION(csdn_verify_auth)

  {

  zend_printf("hello world\n");

  }

} /* Must be the last line in php5cpp_functions[] */

  };

  5.编译生成so文件

  cd /csdn_verify_auth/php-5.2.13/ext/csdn_verify_auth/

  /csdn_verify_auth/php/bin/phpize

  ./configure --with-php-config=/csdn_verify_auth/php/bin/php-config

  make

  mv /csdn_verify_auth/php-5.2.13/ext/csdn_verify_auth/modules/csdn_verify_auth.so /csdn_verify_auth/php/lib/php/extensions/no-debug-non-zts-20060613

  cd ../../../

  6.测试扩展

  vi /csdn_verify_auth/hello.php

  csdn_verify_auth();

  ?>

  /csdn_verify_auth/php/bin/php hello.php

  hello world.

  OK

注意,执行 /csdn_verify_auth/php/bin/phpize时,要求系统配置了m4和autoconfig

执行以下命令

# cd /usr/src
# wget http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
# tar -zvxf m4-1.4.9.tar.gz
# cd m4-1.4.9/
# ./configure && make && make install
# cd ../
# wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz
# tar -zvxf autoconf-2.62.tar.gz
# cd autoconf-2.62/
# ./configure && make && make install


或者


sudo apt-get install m4
sudo apt-get install autoconf

关于autoconf的文章

http://www.cnblogs.com/itech/archive/2010/11/28/1890220.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值