在linux上进行php开发扩展

本文介绍如何在Ubuntu系统上从源码编译并安装PHP 5.3.28扩展,包括下载源码、使用ext_skel脚本生成扩展骨架、修改配置文件及源码等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运行环境:


我在服务器上曾经配过lamp,php版本为5.3.10,可在ubuntu上配置的php不是php源码,所以需要再下载一版源码,下载地址是 http://cn2.php.net/distributions/php-5.3.28.tar.bz2 (注:此版本虽为5.3.28,个人猜测只要大版本号不变,编译出的扩展是可以兼容的


下载完成后安装:

tar -jxvf 源码包名称

找到安装路径下的ext文件夹,这里有很多常用的扩展源码,还有一个ext_skel的脚本程序,用来在Unix环境下生成扩展骨架



我们为新扩展命名为okok,使用ext_skel创建骨架:

./ext_skel --extname=okok

我们发现在ext文件夹下多了一个叫okok的文件夹,进入后有三个文件需要我们修改(config.m4, okok.c, php_okok.h):


1>config.m4

打开后注意这里

这是修改后的结果,修改前红框中的内容都被dnl注释掉了,注释说的很清楚,如果我们的扩展需要使用外部组件,则使用。。。否则使用。。。 所以这里选择第二种方式,把注释去掉,保存


2>okok.c

打开后找到

PHP_FE(confirm_okok_compiled, NULL)这是脚本自动生成的一个函数,后面有与之对应的函数体,这里我们可以添加多个自定义的函数,为了演示我们修改原confirm_okok_compiled为okok,然后在此文件中找到PHP_FUNCTION(comfirm_okok_compiled),修改为PHP_FUNCTION(okok) ,这里的对应关系大家应该不难明白,函数体里可以自定义方法,本文不涉及实现问题,我们不对函数体做修改(这里有编写好的测试代码),保存


3>php_okok.h

这是很容易忽略的一步,打开找到PHP_FUNCTION(comfirm_okok_compiled),修改为PHP_FUNCTION(okok),如果添加新的函数则对应添加


回到okok目录下,开始编译

1>/usr/bin/phpize

2>./configure

3>make

4>make install


这时,在 /usr/lib/php5/20090626 目录下,生成了okok.so扩展文件,引用扩展就不再赘述了



-------------------------------------------------------------------------------------------------------


做了一个小实验,想知道当自己写的扩展函数如果与php自身或其他扩展的函数名相同时会发生什么,结果编写了一个phpinfo()的自定义函数,重启Apache失败,静态页也无法打开




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值