国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > PHP > 正文

centos php擴(kuò)展開(kāi)發(fā)流程

2020-03-22 17:56:52
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  • 一、安裝php

    centos 默認(rèn) yum 安裝 php 版本為 5.3, 很多php框架基本上要求5.4以上版本,這時(shí)候不能直接 用 yum install php 需要先改yum 源。

    1、啟動(dòng)REMI源
    1 # cd /tmp2 # 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  
    二、擴(kuò)展開(kāi)發(fā) 1、php源碼下載
    # wget http://cn2.php.net/distributions/php-5.4.43.tar.gz# tar vzxf php-5.4.42.tar.gz

    注意這里下載的版本要跟系統(tǒng)安裝的php版本保持一致,php查看咱在版本命令

    php -v

    我系統(tǒng)安裝是5.4 的

    2、安裝phpize

    (phpize是用來(lái)擴(kuò)展php擴(kuò)展模塊的,通過(guò)phpize可以建立php的外掛模塊)

    # yum install phpize
    3、ext_skel工具

    ext_skel 是php寫(xiě)擴(kuò)展提供一個(gè)很好用的 “自動(dòng)構(gòu)建系統(tǒng)” 使用他可以方便的搭建php擴(kuò)展。 此工具為php源碼自帶工具位于 源碼里頭的 ext目錄下

    # cd /php-5.4.43/ext# ./ext_skel --extname = myext

    執(zhí)行生成擴(kuò)展后 ext 下面會(huì)自動(dòng)多一個(gè) 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, for myext support,[  --with-myext             Include myext support])
    4、寫(xiě)簡(jiǎn)單的測(cè)試c擴(kuò)展

    修改php_myext.h,看到PHP_FUNCTION(confirm_myext_compiled); 這里就是擴(kuò)展函數(shù)聲明部分,可以增加一

    PHP_FUNCTION(confirm_myext_compiled);PHP_FUNCTION(myext_helloworld);


    然后修改myext.c,這個(gè)是擴(kuò)展函數(shù)的實(shí)現(xiàn)部分。

    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[] */};

    這的代碼是將函數(shù)指針注冊(cè)到Zend引擎,增加一行PHP_FE(myext_helloworld, NULL)(后面不要帶分號(hào))。

    在myext.c末尾加myext_helloworld的執(zhí)行代碼。

    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!");    RETRUN_TRUE;}

    zend_parse_parameters是用來(lái)接受PHP傳入的參數(shù),RETURN_XXX宏是用來(lái)返回給PHP數(shù)據(jù)。

    5、編譯安裝php擴(kuò)展
    # phpize# ./configure# make# make test# make install

    跳到php擴(kuò)展文件加里頭可以看到多了個(gè)myext.so 文件

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

    添加一行擴(kuò)展

    extension=myext.so

    查看擴(kuò)展是否安裝成功

    php -m

    看到多了個(gè)myext.so擴(kuò)展,ok大功告成,接下來(lái)我們這看下我們自定義的函數(shù)能否正確執(zhí)行


    執(zhí)行php -r “myext_helloworld(‘test’);”,輸出hello world!

    三、小小感悟

    echosong 以前在window下做php擴(kuò)展 各種問(wèn)題各種不順,最新發(fā)現(xiàn)liunx 下做php擴(kuò)展比window方便很多。如果想做php擴(kuò)展的朋友們建議直接上手liunx下開(kāi)發(fā)。

    另外感覺(jué)liunx c 的開(kāi)發(fā) ,特別跟操作系統(tǒng)的溝通 各種順暢。O(∩_∩)O~

    PHP編程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 灵丘县| 株洲市| 肥乡县| 玉门市| 金华市| 麻阳| 洛川县| 罗江县| 东方市| 宁晋县| 吴忠市| 青冈县| 无棣县| 沛县| 尉氏县| 濮阳市| 尉氏县| 焉耆| 武山县| 缙云县| 南木林县| 祁东县| 沙田区| 治县。| 渭南市| 互助| 芮城县| 隆化县| 南宫市| 孟村| 潞西市| 桦川县| 望江县| 临沂市| 石狮市| 宁海县| 通渭县| 怀安县| 兴仁县| 临沭县| 旬邑县|