linux下编写、编译php扩展

linux php 编程技术
发布日期 2023-07-17 更新日期 2023-07-17 阅读次数 150 文章字数 926

克隆php源代码,或下载php源码压缩包,windows.php.net - /downloads/releases/archives/

git clone https://github.com/php/php-src.git

源码包里,在ext文件夹里,有一个ext_skel.php(简化版本可能没有这个文件,所以推荐下载源码),这是php内置的模块初始化脚本,使用php执行该脚本,--ext就是扩展名(huazstar),可选作者名

cd ext

/www/server/php/80/bin/php ext_skel.php --ext huazstar --author zhufenghua --std

这时,会在ext路径下得到一个huazstar(扩展名)的文件夹

进入扩展文件夹

cd huazstar

在这个文件夹里,有两个文件特别注意,一个是huazstar.c文件,和huazstar_arginfo.h文件,熟悉C语言的都知道这就是实现和定义,在c文件里,可以发现默认有一个PHP_FUNCTION(test1)和PHP_FUNCTION(test2)的实现,在h文件里分别有这两个函数的定义,也就是默认情况下有test1()和test2()两个函数

配置并编译

/www/server/php/80/bin/phpize
./configure   --with-php-config=/www/server/php/80/bin/php-config
make && make install

这时,就会在modules目录下,得到一个huazstar.so文件

把该扩展文件,在php(注意版本要匹配)的ini文件里,追加配置

[huazstar]
extension=/www/wwwroot/phpSource/php-src/ext/huazstar/modules/huazstar.so

然后重启php80,即可。

测试扩展是否加载成功?编写测试文件

<?php

$res = extension_loaded('huazstar'); //扩展名

var_dump($res); //bool(true)

echo "<br>";

echo test1(); //  The extension huazstar is loaded and working!

echo "<br>";

echo test2();  //Hello World



文章作者: 朱丰华

文章链接: https://smart.52dixiaowo.com/blog/post-460.html

版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。

linux php

发表评论

相关推荐
朱丰华   |   7个月前   |   php

php判断是否被iframe

221    评论    点赞
朱丰华   |   1年前   |   linux · upx

Linux下安装UPX

406    评论    点赞
朱丰华   |   1年前   |   linux

linux保持后台进程不被关闭nohup &

254    评论    点赞
朱丰华   |   1年前   |   php

php正则表达式定界符:异常Delimiter must not be alphanumeric or backslash

190    评论    点赞
朱丰华   |   1年前   |   php · 缓存 · opcache

php 加速、提高并发opcache

198    评论    点赞
朱丰华   |   1年前   |   编译 · linux · 平台

Go 交叉编译 (跨平台编译)

172    评论    点赞
朱丰华   |   1年前   |   正则 · 表达

正则表达式,实现if...then...else

112    评论    点赞
朱丰华   |   1年前   |   sql · php

PHP如何使用PDO批量执行SQL?

114    评论    点赞
朱丰华   |   1年前   |   linux · 内容

linux环境下,对于一个大文件,如何查看其中某行的内容

68    评论    点赞
朱丰华   |   1年前   |   php · 字符 · 字符串

如何在 PHP 中将字符串的第一个字母转换为大写

148    评论    点赞
朱丰华   |   1年前   |   linux · 文件 · 行数

linux 取得文件行数

49    评论    点赞
朱丰华   |   1年前   |   php · 字符 · 正则

php正则表达式原生字符

85    评论    点赞
朱丰华   |   1年前   |   字符 · php · 比较

PHP比较字符串大小相关函数

110    评论    点赞
朱丰华   |   1年前   |   文件 · linux · 修改

linux文件的三个时间atime,mtime,ctime分别表示什么?

274    评论    点赞
朱丰华   |   1年前   |   linux · 文件 · 统计

linux递归统计文件夹下的文件数量

165    评论    点赞
朱丰华   |   1年前   |   linux · 文件

linux递归统计文件夹大小、du命令_Linux du命令:查看文件夹和文件的磁盘占用情况

192    评论    点赞
朱丰华   |   1年前   |   php

windows下编写、编译php扩展

157    评论    点赞
朱丰华   |   1年前   |   php · 混淆 · obfuscate · git

yakpro-po混淆php代码

105    评论    点赞
朱丰华   |   1年前   |   c语言 · 编译

C语言中预编译#if的使用

74    评论    点赞
朱丰华   |   1年前   |   php

php扩展编译nts的方法

85    评论    点赞
{{item.author_name}}   |   {{new Date(item.date*1000).log()}}   |   {{it}} ·

{{item.title}}

{{item.uv}}    评论    点赞