PHP调用C语言扩展

运行环境

ubuntu server 14.04+PHP5.5.9+apache2

操作步骤

1、先下载PHP源码包,因为我系统中的PHP没有ext_skel这个骨架,注意,这个PHP源码包版本最好对应,因为我这前下载过旧版本的,导致没有办法生成骨架。

sudo apt-get install php5-dev

2、解压源码包到你的home目录中,也可以你自己指定的目录

tar -czvf php-5.5.12.tar.gz

3、根据以下的命令进行输入,用过ubuntu的会知道命令什么意思,这里不解析

cd php-5.5.12/ext   
./ext_skel --extname=bank     //bank是我将要做的银行接口系统扩展,这时会生成一个bank的目录,注意,如果ext_skel用的是旧版本,这里可能会出错
cd bank
vim config.m4
//把第16和第18行的dnl这个注释符号去掉,去掉后是下面的样子
PHP_ARG_ENABLE(bank, whether to enable bank support,
dnl Make sure that the comment is aligned:
[  --enable-bank           Enable bank support])
 
4、运行phpize程序,这个命令不一定每个人的系统中都有,如果没有请安装。这个命令会在当前目录生成一些文件,如果运行完后你能在当前目录下找到php_bank.h和bank.说明运行成功。

sudo apt-get install phpize  //当phpize没有时要运行这个命令安装
phpize 
5、修改php_bank.h文件

vim php_bank.h
//找到PHP_FUNCTION(confirm_hello_compiled)在下面增加自己的函数
PHP_FUNCTION(bank_con);

6、修改bank.c,找到PHP_FE(confirm_hello_compiled, NULL)增加自己的函数

vim bank.c

PHP_FE(confirm_bank_compiled,   NULL)           /* For testing, remove later. */
PHP_FE(bank_con, NULL)
在这个文件的最后面增加调用的函数体
PHP_FUNCTION(bank_con)
{
  //这里写自己的函数体。
}
7、开始配置

 ./configure --with-php-config=/usr/bin/php-config    //注意php-config这个文件是在安装phpize时会产生的,如果没有这个文件是没有办法配置完成
make
make install
如果上面3个命令中有出错的话,请从第3步开始重做吧。

8、修改php.ini让他加载扩展

vim /etc/php5/apache2/php.ini

extension=bank.so
9、重启apache,然后在phpinfo中就可以看到bank这个扩展的了。


猜你喜欢

转载自blog.csdn.net/emtit2008/article/details/27060589