php添加第三方语言的LINUX下so扩展

发表于 2019-07-23 09:58:51, 分类:技术文档



把第三方SO库文件放入LINUX公共第三方库目录usr/local/lib,最好在放一份入usr/lib,   然后


执行  ldconfig

下载本机安装的PHP安装包

进入安装包主目录下EXT目录   例如: cd php-5.6.30/ext

./ext_skel --extname=LQ009   等号后面是你自己定义的扩展的名字

进入LQ009目录 vim config.m4


PHP_ARG_ENABLE(lq009 , whether to enable lq009 support,   去掉这个 dnl


dnl Make sure that the comment is aligned:


[  --enable-hello           Enable lq009 support])         去掉这个 dnl


在LQ009目录执行phpize命令,命令在PHP环境目录bin下如:/www/wdlinux/phps/56/bin/phpize

    

   打开 php_lq009 .h,加入函数声明:

PHP_FUNCTION(hello_add); hello_add最好是你SO库内函数名


    编辑lq009.c  

    zend_function_entry lq009_functions[] = {

    PHP_FE(confirm_lq009_compiled,  NULL)       /* For testing, remove later. */

    PHP_FE(hello_add,   NULL)       /* For testing, remove later.         注意 hello_add为你PHP调用的函数名*/

    {NULL, NULL, NULL}  /* Must be the last line in hello_functions[] */};

  

    然后在 lq009.c 的最末尾书写hello_add函数的内容:

    PHP_FUNCTION(hello_add)

    {

        long int a, b;

        long int result;

  

        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ll", &a, &b) == FAILURE) {

            return;

        }

        result = cc_add(a, b);  

        RETURN_LONG(result);

    }


然后进行下面的操作

  1. ./configure --with-php-config=/www/server/php/56/bin/php-config

  2. make LDFLAGS=-lLQ009        LQ009 ,生成的SO文件名带有LIBLQ009.so,这里不带LIB 是你用第三方语言生成的SO文件名,记住要先把生成的LQ009放入LINUX公共第三方库目录usr/lib,usr/local/lib

  3. make install

  4. 把LQ009目录 modules 里面.so文件拷贝如PHP环境目录如/php/lib/php/extensions/no-debug-non-zts-20090626/下面

  5. service php-fpm restart 重启PHP

  6. 编写PHP调用SO库如如库内函数 echo hello_add(5,4);

     

     

     

河南日头软件技术有限公司

地址:河南省郑州市惠济区绿环路137号北尚苑3楼329室(绿环路与丰业街交叉口向东50米路南)

电话:13592545108

邮箱:923450617@qq.com

Copyright © 2017 - 2024 日头软件 ICP备案号: 豫ICP备18012734号-3 管理