知识大全 Linux下C语言对PHP扩展
Posted 语言
篇首语:此刻打盹,你将做梦;而此刻学习,你将圆梦。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Linux下C语言对PHP扩展相关的知识,希望对你有一定的参考价值。
Linux下C语言对PHP扩展 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
一 搭建php环境
下载php 源码 并解压
编译安装 搭建php环境
二 创建扩展项目
进入源码目录
cd php /ext/
/ext_skel extname=my_ext
创建名字为my_ext的项目 最终会生成my_ext so
三 更改配置和程序
$ vi ext/my_ext/config m
根据你自己的选择将
dnl PHP_ARG_WITH(my_ext for my_ext support
dnl Make sure that the ment is aligned:
dnl [ with my_ext Include my_ext support])
修改成
PHP_ARG_WITH(my_ext for my_ext support
Make sure that the ment 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 ment 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 ment is aligned:
[ enable my_ext Enable my_ext support])
$ vi ext/my_ext/php_my_ext h
将
PHP_FUNCTION(confirm_my_ext_piled); /* For testing remove later */
更改为
PHP_FUNCTION(say_hello);
$ vi ext/my_ext/my_ext c
将
zend_function_entry php cpp_functions[] =
PHP_FE(confirm_my_ext_piled NULL) /* For testing remove later */
NULL NULL NULL /* Must be the last line in php cpp_functions[] */
;
更改为
zend_function_entry php cpp_functions[] =
PHP_FE(say_hello NULL)
NULL NULL NULL /* Must be the last line in php cpp_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
cha138/Article/program/PHP/201311/20822相关参考