php扩展开发(一)

万事开头难,为了开头简单一点,按照惯例先完成Hello World的编写。

首先找到php源码包,里面有个ext目录。ext目录包含php内置的一些扩展包。如下

php-ext-dev-1-1

比较特殊的是ext_skel.php,这是php扩展的创建脚本,执行下面命令可以创建一个扩展

1
php ./ext_skel.php --ext my_ext

出现下面的结果表示正常

php-ext-dev-1-2

一个扩展就这么创建完成了,扩展名称my_ext。进入到扩展目录,使用下面命令编译扩展到php运行环境

1
phpize && ./configure && make && make install

一般不会出问题,如果编译失败或者报错,检查phpize,php-config是否在PATH目录,make, gcc,gcc-c++或者g++是否安装

此时扩展还未加载,需要增加扩展配置文件,如下

1
echo "extension=my_ext.so" > /usr/local/php/php-7.4.27/etc/conf.d/my_ext.ini

安装位置不同,配置文件路径会有所不同。使用php --ini命令查看当前php环境配置文件路径

然后查看扩展是否正常

1
php --ri my_ext
php-ext-dev-1-3

默认情况下,扩展创建脚本会创建测试函数,分别是my_ext_test1my_ext_test2

进入php交互模式测试扩展是否正常运行

php-ext-dev-1-4

这就是php扩展的HELLO WORLD了。后续可以基于此进行扩展开发