docker-php扩展

生成扩展骨架

环境:docker-compose、php74

1.本地要有一份 php-src

git clone https://github.com/php/php-src.git 
cd php-src
git checkout PHP-7.4.5

2.\www\php-src\ext可以看到有一个 ext_skel.php 文件

在这里插入图片描述

3.通过ext_skel.php脚本创建了一个hello扩展,脚本目录在\www\php-src\ext目录下

php ext_skel.php --ext hello 

4.\www\php-src\ext\hello文件下的架构

-rw-r--r--   1 longshilin  staff   405 Feb 27 16:07 .gitignore
-rw-r--r--   1 longshilin  staff    11 Feb 27 16:07 CREDITS
-rw-r--r--   1 longshilin  staff  3231 Feb 27 16:07 config.m4
-rw-r--r--   1 longshilin  staff   204 Feb 27 16:07 config.w32
-rw-r--r--   1 longshilin  staff  3355 Feb 27 16:07 hello.c
-rw-r--r--   1 longshilin  staff  1425 Feb 27 16:07 php_hello.h
drwxr-xr-x   5 longshilin  staff   160 Feb 27 16:07 tests

5.编写代码扩展

编写helloword.c,可以通过PHP_FUNCTION定义函数

写一个测试方法,放到函数 PHP_FUNCTION(hello_test2) 后面:

/*新增函数*/
PHP_FUNCTION(hello)
{
     zend_string *strg;
     strg = strpprintf(0, "hello word");
     RETURN_STR(strg);
}

然后在 hello_functions[] 数组中增加我们新写的函数

PHP_FE(hetlo,NULL)

6.开始编译

/usr/local/bin/phpize
	//报错Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.
	//解决方式 apk add autoconf
./configure  --with-php-config=/usr/local/bin/php-config
	//报错 no acceptable C compiler found in $PATH
    //解决方式 apk add gcc
    //报错 C compiler cannot create executables
    //解决方式 apk add gcc g++
make && make install
    //报错 /bin/sh: make: not found
    //解决方式 apk add make
    

7.添加扩展目录

docker-php-ext-enable hello 
//启动扩展

8.测试

//新建文件a.php
<?php
echo hello();
?>

php a.php
#得到 hello word
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker-compose是一个用于定义和运行多个Docker容器的工具,而Nginx和PHP7则是两个常用的开发工具。 Nginx是一个高性能的Web服务器,也可以用作反向代理服务器、负载均衡器和HTTP缓存等。它具有高并发性、低内存消耗和高度可扩展性的特点,适合用于处理静态文件和处理动态内容的网站。通过docker-compose,我们可以使用Nginx容器来托管和运行我们的Web应用程序。 PHP7是一种用于编写Web应用程序的脚本语言,它被广泛用于开发和部署动态网站。它提供了大量的框架和库,使开发人员可以快速构建功能强大且高性能的Web应用程序。通过docker-compose,我们可以使用PHP7容器来运行我们的PHP应用程序。 使用docker-compose搭建Nginx和PHP7环境非常简单。首先,我们需要编写一个docker-compose.yml文件,定义并配置我们的容器。在这个文件中,我们可以指定Nginx和PHP7容器的镜像、端口映射、卷挂载等信息。然后,我们可以通过命令docker-compose up来启动这些容器。 当我们使用docker-compose启动Nginx和PHP7容器时,它们将会在同一个Docker网络中运行,并且能够相互通信。我们可以将Nginx容器配置为将请求转发给PHP7容器,从而实现Web应用程序的正常运行。 总之,使用docker-compose可以方便地搭建Nginx和PHP7环境,从而提供一个高性能的Web服务。这种方法可以有效地减少配置和部署的复杂性,同时也提升了开发和生产环境的一致性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值