centos php扩展开发流程

前端之家收集整理的这篇文章主要介绍了centos php扩展开发流程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、安装PHP

centos 默认 yum 安装 PHP 版本为 5.3, 很多PHP框架基本上要求5.4以上版本,这时候不能直接 用 yum install PHP 需要先改yum 源。

1、启动REMI源

  1. 1 # cd /tmp
  2. 2 # wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
  3. 3 # wget http://mirrors.sohu.com/fedora-epel/6/i386/epel-release-6-8.noarch.rpm

2、rpm安装

  1. # rpm -Uvh remi-release-6.rpm epel-release-6-8.noarch.rpm

3、安装 >=5.4以上PHP

  1. # yum --enablerepo=remi install PHP

二、扩展开发

1、PHP源码下载

  1. # wget http://cn2.PHP.net/distributions/PHP-5.4.43.tar.gz
    # tar vzxf PHP-5.4.42.tar.gz

注意这里下载的版本要跟系统安装的PHP版本保持一致,PHP查看咱在版本命令

  1. PHP -v

我系统安装是5.4 的

2、安装PHPize

PHPize是用来扩展PHP扩展模块的,通过PHPize可以建立PHP的外挂模块)

  1. # yum install PHPize

3、ext_skel工具

ext_skel 是PHP写扩展提供一个很好用的 “自动构建系统” 使用他可以方便的搭建PHP扩展。 此工具为PHP源码自带工具位于 源码里头的 ext目录下

  1. # cd /PHP-5.4.43/ext
  2. # ./ext_skel --extname = myext

执行生成扩展后 ext 下面会自动多一个 myext文件

  1. # cd myext
  2. # vim config.m4

将 config.m4文件里面

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

修改

  1. PHP_ARG_WITH(myext,[ --with-myext Include myext support])

4、写简单的测试c扩展

修改PHP_myext.h,看到PHP_FUNCTION(confirm_myext_compiled); 这里就是扩展函数声明部分,可以增加

  1. PHP_FUNCTION(confirm_myext_compiled);
  2. PHP_FUNCTION(myext_helloworld);


然后修改myext.c,这个是扩展函数的实现部分。

  1. const zend_function_entry myext_functions[] = {
  2. PHP_FE(confirm_myext_compiled,NULL) /* For testing,remove later. */
  3. PHP_FE(myext_helloworld,NULL)
  4. PHP_FE_END /* Must be the last line in myext_functions[] */
  5. };

这的代码是将函数指针注册到Zend引擎,增加一行PHP_FE(myext_helloworld,NULL)(后面不要带分号)。

在myext.c末尾加myext_helloworld的执行代码

  1. PHP_FUNCTION(myext_helloworld)
  2. {
  3. char *arg = NULL;
  4. int arg_len,len;
  5. char *strg;
  6. if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,"s",&arg,&arg_len) == FAILURE) {
  7. return;
  8. }
  9. PHP_printf("Hello World!\n");
  10. RETRUN_TRUE;
  11. }

zend_parse_parameters是用来接受PHP传入的参数,RETURN_XXX宏是用来返回给PHP数据。

5、编译安装PHP扩展

  1. # PHPize
  2. # ./configure
  3. # make
  4. # make test
  5. # make install

跳到PHP扩展文件加里头可以看到多了个myext.so 文件

  1. # cd /usr/lib64/PHP/modules
  2. # vim /etc/PHP.ini

添加一行扩展

  1. extension=myext.so

查看扩展是否安装成功

  1. PHP -m

看到多了个myext.so扩展,ok大功告成,接下来我们这看下我们自定义函数能否正确执行


执行PHP -r “myext_helloworld(‘test’);”,输出hello world!

http://www.cnblogs.com/echosong/p/4639062.html

猜你在找的CentOS相关文章