用PHP调用C扩展整个配置过程(好辛苦呀)

今天终于把C扩展加入到PHP中了,并且可以调用,废话就不说了,看下文。

一、必须先要安装Apache和mysql,这两个的安装过程我就不说了。

二、安装PHP

#mkdir /usr/local/php5

#./configure      --prefix=/usr/local/php5     --with-apxs2=/usr/local/apache2/bin/apxs     --with-mysql=/usr/lib64/mysql      --with-config-file-path=/usr/local/php5

#make
#make install

三、查看php是否安装成功
在apache的htdocs里建立一个文件名为:index.php
写入内容 <?phpinfo()?>
保存
浏览http://localhost/index.php
显示正确,安装成功。

四、创建自己的c php扩展
进入到php的安装包的ext目录下
#cd /usr/software/php5-3.2/ext
#./ext_skel  --extname=mysqlc                            注意:这里是创建里扩展库的名字,创建后,会在ext下有一个mysqlc的目录
#cd mysqlc


五、进行扩展库的基础修改和编码操作
#vi config.m4

原始
dnl PHP_ARG_ENABLE(mysqlc, whether to enable mysqlc support,
dnl Make sure that the comment is aligned:
dnl [  --enable-mysqlc           Enable mysqlc support])

修改后的
PHP_ARG_ENABLE(mysqlc, whether to enable mysqlc support,
Make sure that the comment is aligned:
[  --enable-mysqlc           Enable mysqlc support])

#vi mysqlc.c

在PHP_FUNCTION(confirm_mysqlc_compiled)函数下面追加

PHP_FUNCTION(mysqlc){
     zend_printf("helloword c!!");
}

修改前
const zend_function_entry mysqlc_functions[] = {
    PHP_FE(confirm_mysqlc_compiled,    NULL)        /* For testing, remove later. */
    {NULL, NULL, NULL}    /* Must be the last line in mysqlc_functions[] */
};

修改后
const zend_function_entry mysqlc_functions[] = {
    PHP_FE(confirm_mysqlc_compiled,    NULL)        /* For testing, remove later. */
    PHP_FE(mysqlc,NULL)
    {NULL, NULL, NULL}    /* Must be the last line in mysqlc_functions[] */
};

#vi php_mysqlc.h
在PHP_FUNCTION(confirm_mysqlc_compiled);下面追加

PHP_FUNCTION(mysqlc);

到这里,基本上你的扩展库就写完了,下面就要开始进行生成和安装了

五、生成扩展库
当前目录在/usr/software/php5-3.2/ext/mysqlc

#/usr/local/php5/bin/phpize

#./configure --with-php-config=/usr/local/php5/bin/php-config

#make

#make install


执行完毕后,将会在/usr/local/php5/lib/php/extensions/no-debug-non-zts-版本号/mysqlc.so文件

把mysqlc.so文件复制到apache下的modules去

四、进行配置php.ini

然后进入到/usr/local/php5看有没有php.ini,

如果没有,复制安装包里的php.ini-production改名为php.ini

进入php.ini设置
1、short_open_tag = On
2、extension_dir = "/usr/local/apache2/modules/"
3、追加一个extension=mysqlc.so
保存php.ini,重启apache


OK,扩展库可以使用了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值