千家信息网

ubuntu12.04中如何使用c编写php扩展模块

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章主要介绍了ubuntu12.04中如何使用c编写php扩展模块,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。系统是ubuntu
千家信息网最后更新 2024年11月28日ubuntu12.04中如何使用c编写php扩展模块

这篇文章主要介绍了ubuntu12.04中如何使用c编写php扩展模块,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

系统是ubuntu 12.04,已经安装好了apache和php,php的版本是5.3.10。

以下操作如果碰到权限方面的问题,建议切换成root操作。

1、下载源码

签出php 5.3.10的源代码

代码如下:


$ svn checkout https://svn.php.net/repository/php/php-src/branches/PHP_5_3_10/

Tips:如果没有这个命令,需要先安装svn,在ubuntu下直接使用apt-get安装就OK了:

代码如下:


$ sudo apt-get install subversion

关于php源码,如需要了解更多信息,可以查看php维基中关于svn的说明:https://wiki.php.net/vcs/svnfaq

2、创建模块

a、源码签出完毕后,进入源码ext目录,先用ext_skel创建一个模块, 模块名为my:

代码如下:


$ ./ext_skel --extname=my

b、进入my模块:

代码如下:


$ cd my

c、修改config.m4文件,找到如下内容:

代码如下:


dnl PHP_ARG_WITH(my, for my support,
dnl Make sure that the comment is aligned:
dnl [ --with-my Include my support])

将前面的dnl去除,最后如下:

代码如下:


PHP_ARG_WITH(my, for my support,
Make sure that the comment is aligned:
[ --with-my Include my support])

然后保存文件。

Tips:如果需要测试下修改是否正确,可以使用php my.php来测试下:

代码如下:


$ php my.php
confirm_my_compiled

Congratulations! You have successfully modified ext/my/config.m4. Module my is now compiled into PHP.

上面confirm_my_compiled就是模块默认的函数,后面将该模块加载后,就可以调用这个函数了。

3、编译模块

还是在my模块的目录下执行下面命令:

代码如下:


$ phpize
$ ./configure
$ make
$ make install

编译成功后,会提示这样的信息:

代码如下:


Installing shared extensions: /usr/lib/php5/20090626+lfs/

表示模块已经编译完成,并且复制到php模块目录了。

Tips:如果phpize命令没有找到,需要安装下php5-dev,在ubuntu下直接使用apt-get安装就OK了。

代码如下:


$ apt-get install php5-dev

4、加载模块

编辑文件:

代码如下:


$ vim /etc/php5/conf.d/my.ini

增加如下内容,表示加载my.so模块,然后保存。

代码如下:


extension=my.so

重新启动apache

代码如下:


$ /etc/init.d/apache2 restart

在web环境下,可以用phpinfo看看是否加载my模块了。终端可以使用php -i | less查看。

5、编写测试程序

如果上面都执行顺利,那么my模块就加载进来了,my模块的默认的一个方法confirm_my_compiled也就可以调用了。编写php测试文件:

代码如下:


echo confirm_my_compiled("Hello");

执行测试文件,如果看到下面的输出,那么就成功了。

代码如下:


Congratulations! You have successfully modified ext/my/config.m4. Module Hello is now compiled into PHP.

感谢你能够认真阅读完这篇文章,希望小编分享的"ubuntu12.04中如何使用c编写php扩展模块"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

模块 代码 文件 测试 源码 篇文章 命令 目录 编译 成功 信息 内容 函数 更多 价值 兴趣 同时 就是 建议 方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发公司转型 数据库查询表的语句怎么写 哈利波特看哪个服务器有角色 2018湖南网络安全宣传周 安卓 java软件开发 浙江北斗时钟服务器时间同步 计算机二级考试系统数据库 金蝶客户端连不上服务器 民办大学经营在网络技术上的特点 学校网络安全信息组织结构 四川软件开发公司电话 基于exce的软件开发 网络安全分析五官简笔画 RS服务器 IXP 搭建数据库文件夹 计算机网络技术伤脑子吗 光纤及高速网络技术属于第几代 app应用软件开发服务价钱 ifix服务器冗余配置 著名游戏软件开发工程师 数据库审计的网络拓扑 服务器32g内存卡多少钱 怎么将表单存入数据库 苹果13pro登录id连接服务器失败 数据库系统工程师就业 我要放网络安全手抄报 国泰安数据库净资产增长率 上海惠普服务器虚拟化操作 网络安全教育一一主题班会 网络技术选型策略有哪些
0