docker-php扩展

news2024/11/24 2:26:21

生成扩展骨架

环境: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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/893323.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

不用+号算加法(位运算实现)

最近在LeetCode上刷题看到一道非常有意思的题&#xff0c;如何不用号算加法&#xff1f;我觉得挺有意思的故而分享给大家。 在不能使用 号的情况下其实很容易想到运用位运算去解决问题&#xff0c;也就是用二进制去表示十进制加法的逻辑。所以我们可以先拆分十进制加法来帮助理…

「2024」预备研究生mem-三角形内心立体几何相接与相切

一、三角形内心&立体几何相接与相切 现场推算&#xff1a; 二、练习题

花费400元,我DIY了一台全志A133平板电脑

项目作者&#xff1a;flyn 简介&#xff1a;DIY爱好者&#xff0c;在立创开源平台开源了个人的DIY项目4G手机MiniPhone以及焊接工具焊台、恒温加热台和多功能控制台。 这是一款基于全志A133处理器DIY的平板电脑&#xff0c;可运行android和linux系统。平板搭载一块7寸1024X600…

sip网络号角喇叭 sip音柱 POE供电广播音箱 ip网络防水对讲终端 sip网络功放

SV-7042TP网络号角喇叭 一、描述 SV-7042TP是我司的一款SIP网络号角喇叭&#xff0c;具有10/100M以太网接口&#xff0c;内置有一个高品质扬声器&#xff0c;将网络音源通过自带的功放和喇叭输出播放&#xff0c;可达到功率30W。SV-7042TP作为SIP系统的播放终端&#xff0c;可…

Docker:Windows container和Linux container

点击"Switch to Windows containers"菜单时&#xff1a; 提示 然后 实际上是运行&#xff1a;com.docker.admin.exe start-service

连接pgsql数据库 sslmode sslrootcert sslkey sslcert 参数的作用

sslmode 参数的作用 sslmode 参数用于指定数据库连接时使用的 SSL 加密模式。SSL&#xff08;Secure Sockets Layer&#xff09;是一种加密协议&#xff0c;用于保护数据在客户端和服务器之间的传输过程&#xff0c;以增加数据传输的安全性。sslmode 参数可以设置不同的值&…

美团滑块模拟登录

本教程仅限于学术探讨&#xff0c;也没有专门针对某个网站而编写&#xff0c;禁止用于非法用途、商业活动、恶意滥用技术等&#xff0c;否则后果自负。观看则同意此约定。如有侵权&#xff0c;请告知删除&#xff0c;谢谢&#xff01; aHR0cHM6Ly9wYXNzcG9ydC5tZWl0dWFuLmNvbS9…

获奖方案|麒麟信安,深入电力调控国产化的最后一公里

从城市到乡村&#xff0c;从工厂车间到田间地头&#xff0c;无形的电力在有形的电网中流淌&#xff0c;支撑着企业生产、人民生活和城市运行。电力是国民经济运行的基础能源&#xff0c;其稳定运行关乎国计民生。 伴随着电力设备大规模接入&#xff0c;电力系统面临巨大的挑战&…

半导体自动化专用静电消除器主要由哪些部分组成

半导体自动化专用静电消除器是一种用于消除半导体生产过程中的静电问题的设备。由于半导体制造过程中对静电的敏感性&#xff0c;静电可能会对半导体器件的质量和可靠性产生很大的影响&#xff0c;甚至造成元件损坏。因此&#xff0c;半导体生产中采用专用的静电消除器是非常重…

QT如何打包

目录 1.windeployqt工具 2.工具位置 3.使用方法 4.注意事项 Qt Creator 默认以动态链接的方式生成可执行文件&#xff0c;该文件无法独立运行&#xff0c;必须为其提供所需的动态链接库。也就是说&#xff0c;只分享 Qt Creator 生成的可执行文件是不行的&#xff0c;必须将…

springBoot 配置文件 flyway 插件相关参数说明

在Spring Boot应用中使用Flyway插件进行数据库迁移时&#xff0c;可以在应用的配置文件中配置相关参数。下面是常用的Flyway配置参数及其说明&#xff1a; flyway.enabled: 是否启用Flyway插件&#xff0c;默认为true&#xff0c;表示启用Flyway插件进行数据库迁移。flyway.ur…

java代码日记--java 基础语法

java代码日记 在线运行 本地运行环境配置 Java 实例 实战 java8 Java 基础语法 一个Java程序可以认为是一系列对象的集合&#xff0c;而这些对象通过调用彼此的方法来协同工作。 下面简要介绍下类、对象、方法和实例变量的概念。 对象&#xff1a;对象是类的一个实例&…

MES生产管理系统如何与ERP系统集成

MES生产管理系统和ERP企业管理系统是制造企业信息化的重要组成部分&#xff0c;它们在生产管理、资源计划和业务流程等方面发挥着重要作用。实现MES与ERP系统的集成&#xff0c;可以更好地优化企业生产流程&#xff0c;提高生产效率和降低成本。本文将探讨MES管理系统解决方案如…

今天来聊一聊单眼三维人脸重建、跟踪及其应用

人脸是计算机视觉中最基本的对象之一&#xff0c;而单眼三维人脸重建和跟踪则是计算机视觉中最具挑战性的任务之一。随着计算机技术的不断发展&#xff0c;单眼三维人脸重建和跟踪已经成为了计算机视觉领域中的热门研究方向之一。 单眼三维人脸重建是指从一张单眼照片中&#x…

苹果手机怎么恢复微信聊天记录?3个方法快速找回

微信是当下十分流行的社交软件&#xff0c;无论是工作还是学习&#xff0c;我们都离不开它。微信里面保存着大量的图片、视频、文件等&#xff0c;能方便我们随时查看&#xff0c;但同时也占据了手机的大量内存。 往往这时候大家就不得不清空一些聊天记录&#xff0c;但事后又…

拒绝摆烂!C语言练习打卡第三天

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;每日一练 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、选择题 &#x1f4dd;1.第一题 &#x1f4dd;2.第二题 &#x1f4…

为助力拔尖人才培养,猿辅导投入亿元设立“青少年科学探索基金”

“少年智则国智&#xff0c;少年富则国富&#xff0c;少年强则国强。”国家发展离不开人才的培养。伴随我国进入高质量发展轨道&#xff0c;科学、人才、教育三位一体融合发展已经刻不容缓。我国基础学科人才紧缺成了不争的事实。目前&#xff0c;中国的GDP目前已是世界第二位&…

【Linux】再谈虚拟地址空间

前言 虚拟地址空间对于理解操作系统的许多概念是很有帮助的&#xff0c;这里我们对虚拟地址空间进行更加深入理解&#xff0c;如果以前没有看过对于虚拟地址空间的初级介绍的话&#xff0c;可以先看这里《虚拟地址空间》 再谈虚拟地址空间 一、页表难道真的只是简单一 一存储映…

Arduino 入门学习笔记11 读写内置EEPROM

Arduino 入门学习笔记11 使用I2C读写EEPROM 一、Arduino 内置EEPROM介绍二、EEPROM 操作1. 包含EEPROM库&#xff1a;2. 写入数据到EEPROM&#xff1a;3. 从EEPROM读取数据4. 完整示例&#xff1a; 一、Arduino 内置EEPROM介绍 Arduino的内置EEPROM&#xff08;Electrically E…

iptables四表五链

iptables四表五链 iptables传输数据包的过程 当一个数据包进入网卡时&#xff0c;它首先进入PREROUTING链&#xff0c;内核根据数据包目的IP判断是否是发往本机的。如果数据包就是进入本机的&#xff0c;它就会沿着图向下移动到INPUT链。数据包到了INPUT链后&#xff0c;任何进…