linux下 C语言对 php 扩展
2015-01-24信息快讯网
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:如有问题请留言,大家共同探讨
PHP 数组基础知识小结
一个简单php扩展介绍与开发教程
php checkbox 取值详细说明
PHP 截取字符串专题集合
php 过滤器实现代码
php include加载文件两种方式效率比较
phpMyAdmin 链接表的附加功能尚未激活的问题
PHP中的integer类型使用分析
PHP中的string类型使用说明
PHP IN_ARRAY 函数使用注意事项
PHP下操作Linux消息队列完成进程间通信的方法
PHP 数组遍历方法大全(foreach,list,each)
PHP XML error parsing SOAP payload on line 1
PHP zlib扩展实现页面GZIP压缩输出
PHP中json_encode、json_decode与serialize、unserialize的性能测试分析
php mssql 数据库分页SQL语句
php 文件状态缓存带来的问题
快速开发一个PHP扩展图文教程
PHP Google的translate API代码
php escape URL编码
php 破解防盗链图片函数
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
Apache+php+mysql在windows下的安装与配置图解(最新版)
php miniBB中文乱码问题解决方法
PHP脚本中include文件出错解决方法
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
使用Limit参数优化MySQL查询的方法
mysql limit查询优化分析
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法