加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

linux下 C语言对 php 扩展

发布时间:2020-12-13 05:29:41 所属栏目:PHP教程 来源:网络整理
导读:一,搭建php环境 下载php 5.2.6 源码 并解压 编译安装,搭建php环境 二,创建扩展项目 进入源码目录 cd php5.2.6/ext/ 创建名字为my_ext的项目,最终会生成my_ext.so 三,更改配置和程序 $ vi ext/my_ext/config.m4根据你自己的选择将dnl PHP_ARG_WITH(my_ex

一,搭建php环境

下载php 5.2.6 源码 并解压
编译安装,搭建php环境

二,创建扩展项目

进入源码目录
cd php5.2.6/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,
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,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} /* Must be the last line in php5cpp_functions[] */
};在最后添加:
PHP_FUNCTION(say_hello)
{
zend_printf("hello worldn");
}四,编译
$ 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放入$ vi php.ini修改添加如下:
extension_dir = '/usr/local/php/ext/'
六,测试
$ vi test.php
say_hello();
?>$ /usr/local/php/bin/php test.php
hello world.则大功告成ps:如有问题请留言,大家共同探讨

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读