Linux环境下编写PHP扩展篇
2012-08-15 13:36
148 查看
编写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。一起学习^ ^.
相关文章推荐
- LINUX环境下编写php扩展
- Linux环境用C编写PHP扩展
- Linux 环境使用vim搭建php IDE -- 提高代码编写数度数倍!手把手教你打造程序员的上古神器VIM!
- 在Linux环境下给php添加mbstring扩展
- C语言linux环境下写php扩展
- 64位Linux环境安装PHP TCC 扩展方法
- 64位Linux环境安装PHP TCC 扩展方法
- linux下配置php环境及相关扩展
- Linux环境安装phpredis扩展
- 在linux环境下安装php扩展
- linux下为已经编译好的php环境添加mysql扩展
- linux环境下安装PHP的OpenSSL扩展
- linux下为已经编译好的php环境添加mysql扩展(php安装完成后如何添加mysql扩展)
- 中文分词插件SCWS-1.2.3 在Linux环境的安装说明(包括php扩展)
- linux环境下为php7装phpredis扩展
- Linux下编写php扩展
- linux环境下安装PHP的OpenSSL扩展
- linux环境下的PHP使用GTK扩展开发GUI图形界面
- Linux环境FastDFS分布式文件系统及PHP扩展库的安装与配置
- LNMP(Linux+Nginx+Mysql+PHP)环境下安装yaf框架并编写一个MVC例子