zoukankan      html  css  js  c++  java
  • linux编译php的c扩展

    第一步:安装php5

    第二步:打开终端【为来方便,这里使用root用户】,使用CD命令进入到php5源码包的ext目录

    第三步:在终端键入以下命令

    ./ext_skel --extname=extest

    我们的扩展库名叫“extest”,此命令执行后会在ext目录新建一个extest目录。

    第四步:回到终端,使用CD命令进入extest目录,键入以下命令/var/web/php/bin/phpize

    这是站长的phpize的目录,你需要修改成你自己的。运行完之后会在extest目录生成config.m4以及config.w32(windows底下使用),以及configure程序。

    双击打开extest目录,打开php_extest.h文件,找到PHP_FUNCTION(confirm_extest_compiled);

    在这一行的上面添加PHP_FUNCTION(extest_add);保存后退出。

    这里是我们要为extest库编写的add函数到声明。

    第五步:打开extest.c文件,找到const zend_function_entry extest_functions[],往下看3行,在PHP_FE_END的上面一行添加PHP_FE(extest_add,   NULL),在文件的最后添加函数实现到代码:

    点击(此处)折叠或打开

    PHP_FUNCTION(extest_add){
    long int a,b,c;
    if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,"ll",&a,&b )==FAILURE){
    return;
    }
    c=a+b;
    RETURN_LONG(c);
    }
    保存后退出。

    第六步:打开config.m4文件,找到
    PHP_ARG_ENABLE(caleng_module, whether to enable caleng_module...和
    [  --enable-caleng_module           Enable caleng_module support])两行,删除前面的dnl打开。

    第七步:回到终端,使用CD命令进入extest目录,键入命令:

    ./configure --with-php-config=/var/web/php/bin/php-config

    make

    make install

    /var/web/php/bin/php-config这是站长php-config文件的目录,你应该修改成自己的。

    编译顺利的话,在extest/moduels目录和/var/web/php/lib/php/extensions/no-debug-non-zts-20090626目录会产生一个extest.so文件。

    第八步:打开php.ini,添加extension=extest.so,保存退出。

    第九步:如果你用的是apache,重启apache。如果你用的是nginx+php-fpm,需要重启php-fpm。

    如何重启php-fpm?站长没有做重启设置,应此只好先杀死php-fpm的进程在重新启动了。

    打开/var/web/php/var/log/php-fpm.log,定位到文档最后,查看php-fpm到进程号,我的是2156.

    回到终端,使用命令kill 2156杀死php-fpm进程。

    然后重启php-fpm,回到终端使用CD命令进入/var/web/php/sbin目录,使用./php-fpm重启php-fpm。

    第十步:测试扩展库。新建一个index.php文件,代码如下:

    <?php

    echo extest_add(1,2);

    phpinfo();

    ?>

     
  • 相关阅读:
    大数加法、乘法实现的简单版本
    hdu 4027 Can you answer these queries?
    zoj 1610 Count the Colors
    2018 徐州赛区网赛 G. Trace
    1495 中国好区间 尺取法
    LA 3938 动态最大连续区间 线段树
    51nod 1275 连续子段的差异
    caioj 1172 poj 2823 单调队列过渡题
    数据结构和算法题
    一个通用分页类
  • 原文地址:https://www.cnblogs.com/mutuan/p/3505178.html
Copyright © 2011-2022 走看看