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

猜你喜欢

转载自www.cnblogs.com/ling-diary/p/10272475.html