用PHP调用C扩展整个配置过程
时间:2011-05-08 来源:a1981b007
四、创建自己的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,扩展库可以使用了
进入到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
六,测试
$ vi test.php
<?php
say_hello();
?>
$ /usr/local/php/bin/php test.php
hello world.
OK,扩展库可以使用了
相关阅读 更多 +