centos php扩展开发流程

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

一、安装PHP

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

1、启动REMI源

1 # cd /tmp

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

2、rpm安装

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

3、安装 >=5.4以上PHP

# yum --enablerepo=remi install PHP  

二、扩展开发

1、PHP源码下载

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

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

PHP -v

我系统安装是5.4 的

2、安装PHPize

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

# yum install PHPize

3、ext_skel工具

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

# cd /PHP-5.4.43/ext

# ./ext_skel --extname = myext

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

# cd  myext
# vim config.m4

将 config.m4文件里面

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

修改

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

4、写简单的测试c扩展

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

PHP_FUNCTION(confirm_myext_compiled);

PHP_FUNCTION(myext_helloworld);


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

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

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

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

@L_502_0@
PHP_FUNCTION(myext_helloworld)
{
        char *arg = NULL;
    int arg_len,len;
    char *strg;
    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,"s",&arg,&arg_len) == FAILURE) {
        return;
    }
    PHP_printf("Hello World!\n");
    RETRUN_TRUE;
}

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

5、编译安装PHP扩展

# PHPize
# ./configure
# make
# make test
# make install

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

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

添加一行扩展

extension=myext.so

查看扩展是否安装成功

PHP -m

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


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

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

原文链接:https://www.f2er.com/centos/380614.html

猜你在找的CentOS相关文章