在centos7中编译安装php,并构建自定义扩展:
1. 运行centos7容器镜像
docker pull centos:centos7docker run -itd --name phpdev -v /work/src/in/linux:/work/src:z centos:centos7
2. 进入phpdev容器,下载php7.3.1源码置于挂载目录中,解压缩,进入源码目录
docker exec -it phpdev /bin/bashcd /work/srctar -xvf php-7.3.1.tar.gzcd 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-fpmmakemake install
4. 配置
#查看php配置文件应该放到哪里php -i | grep php.iniConfiguration 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 --iniConfiguration File (php.ini) Path: /usr/local/libLoaded Configuration File: /usr/local/lib/php.iniScan 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.m43. ?$ ./buildconf4. ?$ ./configure --[with|enable]-sample5. ?$ make6. ?$ ./sapi/cli/php -f ext/sample/sample.php7. ?$ vi ext/sample/sample.c8. ?$ 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退出容器,重启容器exitdocker restart php
查看php扩展:
php -m
PHP扩展开发学习环境搭建
原文地址:https://www.cnblogs.com/ling-diary/p/10272475.html