Linux环境下编写PHP扩展篇

编写PHP扩展篇

Linux环境下编写:

1. 下载php源码:www.php.net下载php-5.4.5版本。(php-5.4.5-src.zip

解压到home/hjn/php-5.4.5-src 目录下。

(命令:unzip -d /home/hjn/  Downloads/php-5.4.5-src.zip)

2. 环境源码PHP 5.4.5  运行php环境php 5.3.5    ubuntu7.10

3. 到源码包的ext目录下(cd  /home/hjn/php-5.4.5-src/ext).

  

4. 执行:./ext_skel --extname=myso

注:ext_skel 可能为只读文件。用(sudo chmod 777 ext_skel )修改文件权限。 

成功后如下图:

可看到在ext目录下多了myso这个模块文件夹。

5. 进入myso目录下编写,(cd myso)。

6. 修改config.m4

修改(dnl去掉)
PHP_ARG_WITH(myext, for myext support,
dnl Make sure that the comment is aligned:
[  --with-myext             Include myext support])
或者
PHP_ARG_ENABLE(myext, whether to enable myext support,
dnl Make sure that the comment is aligned:
[  --enable-myext           Enable myext support])

7. 用phpize生成配置文件。

可能提示未安装phpize,根据提示安装了就行。Sudo apt-get install php5-dev.

成功如图:

8. 编写第一个输出HelloWorld函数。

1) 修改php_myso.h

找到PHP_FUNCTION(confirm_extest_compiled); 在下面添加

PHP_FUNCTION(myso);

保存退出

强制保存命令(w !sudo tee %

2) 修改myso.c

找到const zend_function_entry extest_functions[] 

PHP_FE_END上面添加

PHP_FE(myso, NULL)

注:看网上资料不用改PHP_FE_END ,但是我每次都报错。所以如果报错改成{NULL,NULL,NULL}就好了

最后在文件最后编写函数内容.

PHP_FUNCTION(myso)

{

Php_printf("HelloWorld");

}

保存退出。

9.编译

命令:./configure --with-myso

如果报错,可能config.m4没改好。

Make

报错,根据报错修改.h.c文件

最后,安装

Sudo Make install

10.修改php.ini文件

找不到该文件可以运行命令 locate php.ini寻找。或运行php文件phpinfo().里面有详细信息。

添加extension=myso.so

最后重启apache

11.测试

编写test.php文件

<?php

myso();

phpinfo();

?>

运行,输出:

HelloWorld


成功!!!

有问题可发邮箱:993324512@qq.com。一起学习^ ^.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值