当前位置: 首页 > 图文教程 > 网络编程 > PHP > linux下 C语言对 php 扩展

PHP
php 正确解码javascript中通过escape编码后的字符
在PHP中养成7个面向对象的好习惯
PHP函数常用用法小结
Zend framework处理一个http请求的流程分析
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
php cli 方式 在crotab中运行解决
PHPWind 发帖回帖Api PHP版打包下载
Linux下将excel数据导入到mssql数据库中的方法
php不用内置函数对数组排序的两个算法代码
用php实现的下载css文件中的图片的代码
php 获取当前访问的url文件名的方法小结
php date与gmdate的获取日期的区别
php下把数组保存为文件格式的实例应用
劣质的PHP代码简化
php 生成随机验证码图片代码
php+mysql事务rollback&commit示例
php 处理上百万条的数据库如何提高处理查询速度
两个开源的Php输出Excel文件类
PHP Memcached应用实现代码
Memcache 在PHP中的使用技巧

PHP 中的 linux下 C语言对 php 扩展


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 271 ::
收藏到网摘: n/a

linux C语言对 php 扩展的设置技巧 一,搭建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
<?php
say_hello();
?>
$ /usr/local/php/bin/php test.php
hello world.
则大功告成
ps:如有问题请留言,大家共同探讨