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
  • 相关阅读:
    【BZOJ4637】期望 Kruskal+矩阵树定理
    IEnumerable是什么
    (转)IIS windows认证
    使用pgrouting进行最短路径搜索
    Nginx设置防止IP及非配置域名访问
    java 调用c# web api 代码
    一台机器部署多个tomcat服务 nginx反向代理多个服务 笔记
    利用Kettle 从Excel中抽取数据写入SQLite
    sql server 统计信息
    sql server 索引碎片相关问题
  • 原文地址:https://www.cnblogs.com/ling-diary/p/10272475.html
Copyright © 2011-2022 走看看