zoukankan      html  css  js  c++  java
  • PHP扩展开发学习环境搭建

    在centos7中编译安装php,并构建自定义扩展:

    1. 运行centos7容器镜像

    docker pull centos:centos7
    docker run -itd --name phpdev -v /work/src/in/linux:/work/src:z centos:centos7

    2. 进入phpdev容器,下载php7.3.1源码置于挂载目录中,解压缩,进入源码目录

    docker exec -it phpdev /bin/bash
    cd /work/src
    tar -xvf php-7.3.1.tar.gz
    cd php-7.3.1

    3. 编译php源码

    yum install autoconf make gcc re2c flex bison libxml2-devel.x86_64 libcurl-devel.x86_64 openssl-devel.x86_64 zlib-devel.x86_64 readline-devel.x86_64
    
    ./buildconf --force
    
    ./configure --enable-debug --with-openssl --with-zlib --enable-mbstring --with-pdo-mysql --with-curl --with-readline --enable-zip --enable-fpm
    
    make
    
    make install

    4. 配置

    #查看php配置文件应该放到哪里
    php -i | grep php.ini
    Configuration File (php.ini) Path => /usr/local/lib
    #拷贝php.ini文件到上述路径
    cp /work/src/php-7.3.1/php.ini-development /usr/local/lib/php.ini #查看php配置文件位置 php --ini Configuration File (php.ini) Path: /usr/local/lib Loaded Configuration File: /usr/local/lib/php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none)

    5. 构建一个扩展框架

    cd ext
    /work/src/php-7.3.1/sapi/cli/php -f ext_skel.php --ext sample

    修改编译自己的扩展:

    To use your new extension, you will have to execute the following steps:
    
    1.  $ cd ..
    2.  $ vi ext/sample/config.m4
    3.  $ ./buildconf
    4.  $ ./configure --[with|enable]-sample
    5.  $ make
    6.  $ ./sapi/cli/php -f ext/sample/sample.php
    7.  $ vi ext/sample/sample.c
    8.  $ make

    修改自己的扩展后,只需重新make,然后通过sapi/cli/php来测试修改是否成功,要想直接使用php命令,需要每次make后都执行make install。

    在php容器中构建自定义扩展:

     运行并进入php容器内,php源码目录位于容器内/usr/src,首先需要解压php源码,在ext目录中构建自定义扩展,通过docker-php-ext-install命令安装扩展,最后重启容器生效。

    #解压源码到/usr/src/php文件夹内
    docker-php-source extract
    
    #进入源码扩展目录
    cd /usr/src/php/ext
    #构建自定义扩展
    php -f ext_skel.php --ext sample
    #编辑自定义扩展。。。
    #安装扩展
    docker-php-ext-install sample
    #exit退出容器,重启容器
    exit
    docker restart php

    查看php扩展:

    php -m
  • 相关阅读:
    玩聚网和百度新闻的技术差异性
    拿下“[warn] (OS 64)指定的网络名不再可用”错误
    转型要回答的四个问题和一根筋变形Push法
    奇虎之奇酷改版为热点memeTracker之分析
    新媒体的运营之道【三】
    疑似BUG:Python SGMLParser处理html中的javascript失当
    智能语义参透股票 小公司不见得比输大公司
    新SNS的创立和运营之道[360圈座谈]
    在路上:语义和创业
    论Push!
  • 原文地址:https://www.cnblogs.com/ling-diary/p/10272475.html
Copyright © 2011-2022 走看看