linux下编写、编译php扩展
linux
php
编程技术
发布日期
2023-07-17
更新日期
2023-07-17
阅读次数 161
文章字数 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
发表评论
相关推荐