ubuntu 下第一个php扩展开发记录
来源:互联网 发布:mac版本阿里旺旺 编辑:程序博客网 时间:2024/05/29 18:55
今天尝试了我的第一个php扩展开发,记录下过程以及遇到的问题
一、环境准备
以前我已经用以下命令安装过php了
- $ sudo apt-get install php5
其安装位置是
- $ whereis php
- php: /usr/bin/php /usr/lib/php /usr/bin/X11/php /usr/share/man/man1/php.1.gz
这种方式安装的php并不能直接进行php扩展开发,我们还需要
(1)安装php5-dev,不然没有编译扩展需要的phpize
- $ sudo apt-get install php5-dev
- $ whereis phpize
- phpize: /usr/bin/phpize /usr/bin/X11/phpize /usr/share/man/man1/phpize.1.gz
(2)下载php5源码, 我准备保存在 ~/code/ 目录下
- $ cd ~/code/
- $ sudo apt-get source php5
- $ ls
- php5-5.4.9 php5_5.4.9-4ubuntu2.dsc
- php5_5.4.9-4ubuntu2.debian.tar.gz php5_5.4.9.orig.tar.xz
进入php的ext目录
- $ cd ~/code/php5-5.4.9/ext/
- $ ./ext_skel --extname=xw
- $ chmod 0777 ~/code/php5-5.4.9/ext
再次执行
- $ ./ext_skel --extname=xw
- cannot open /skeleton.c: No such file
搜索“skeleton.c”,得
- sed -f sedscript < $skel_dir/skeleton.c > $extname.c
- if test -z "$skel_dir"; then
- skel_dir="/usr/lib/php5/<span style="font-family: Arial, Helvetica, sans-serif;">"</span>
- fi
- $ locate /skeleton
- /usr/share/php5/skeleton
- $ ./ext_skel --help
- ./ext_skel --extname=module [--proto=file] [--stubs=file] [--xml[=file]]
- [--skel=dir] [--full-xml] [--no-help]
- --extname=module module is the name of your extension
- --proto=file file contains prototypes of functions to create
- --stubs=file generate only function stubs in file
- --xml generate xml documentation to be added to phpdoc-cvs
- --skel=dir path to the skeleton directory
- --full-xml generate xml documentation for a self-contained extension
- (not yet implemented)
- --no-help don't try to be nice and create comments in the code
- and helper functions to test if the module compiled
明白了,修改原来的命令,增加--skel参数再次执行
- $ ./ext_skel --extname=xw --skel=/usr/share/php5/skeleton
三、编译扩展
进入xw目录 ,vim config.m4 把
- dnl PHP_ARG_ENABLE(xw, whether to enable xw support,
- dnl Make sure that the comment is aligned:
- dnl [ --enable-xw Enable xw support])
- PHP_ARG_ENABLE(xw, whether to enable xw support,
- Make sure that the comment is aligned:
- [ --enable-xw Enable xw support])
依次执行
- $ phpize
- $ ./configure
- $ make
- $ sudo make install
- Installing shared extensions: /usr/lib/php5/20100525/
四、修改php配置,运行检测
修改php.ini 配置文件,把xw.so扩展加入进去(这个就多不多说了)。若你不知道ini文件在哪,可以执行以下命令查看
- $ php -ini
- $ php -r 'echo confirm_xw_compiled("xw"),"\n";'
- Congratulations! You have successfully modified ext/xw/config.m4. Module xw is now compiled into PHP.
函数confirm_xw_compiled()是扩展骨架自带的一个自定义函数,是一个例子,也可用于检查是否安成功安装了扩展。其中“xw”是扩展名
0 0
- ubuntu 下第一个php扩展开发记录
- ubuntu 下第一个php扩展开发记录
- 记录下第一个代码博客
- ubuntu 下第一个python程序
- Ubuntu下第一个Jni例子
- ubuntu下第一个java程序
- Ubuntu 64 下第一个c语言程序
- Linux(Ubuntu)下第一个C程序(0)
- 快速开发一个PHP扩展
- 快速开发一个PHP扩展
- 快速开发一个PHP扩展
- 快速开发一个PHP扩展
- 快速开发一个PHP扩展
- 快速开发一个PHP扩展
- 快速开发一个PHP扩展
- 快速开发一个PHP扩展
- 快速开发一个PHP扩展
- 快速开发一个PHP扩展
- mac下iterm2闪退
- 【北京】低价出售C/C++经典书籍
- 4.qemu-img 命令
- 求一个整数序列的和的最大子串
- Ubuntu+win7双系统安装教程
- ubuntu 下第一个php扩展开发记录
- 日记2014.6.23
- leetcode Pow(x, n)
- 瘟勇玫卫亩蚕靡遗谷吩欧氛俳侵偎
- 黑马程序员--Spring与策略模式
- 【二叉树】二叉搜索树创建、插入、删除、查找等操作
- 十天学完java基础-方法重载和递归调用
- 华丽丽的在线代码高亮组件CodeMirror
- OCP 1Z0 052 186