PHP提供了几个脚本工具用于简化扩展的实现:ext_skel、phpize、php-config,后面两个脚本主要配合autoconf、automake生成Makefile。在介绍这几个工具之前,我们先看下PHP安装后的目录结构,因为很多脚本、配置都放置在安装后的目录中,比如PHP的安装路径为:/usr/local/php7,则此目录的主要结构:
|---php7
| |---bin //php编译生成的二进制程序目录
| |---php //cli模式的php
| |---phpize
| |---php-config
| |---...
| |---etc //一些sapi的配置
| |---include //php源码的头文件
| |---php
| |---main //PHP中的头文件
| |---Zend //Zend头文件
| |---TSRM //TSRM头文件
| |---ext //扩展头文件
| |---sapi //SAPI头文件
| |---include
| |---lib //依赖的so库
| |---php
| |---extensions //扩展so保存目录
| |---build //编译时的工具、m4配置等,编写扩展是会用到
| |---acinclude.m4 //PHP自定义的autoconf宏
| |---libtool.m4 //libtool定义的autoconf宏,acinclude.m4、libtool.m4会被合成aclocal.m4
| |---phpize.m4 //PHP核心configure.in配置
| |---...
| |---...
| |---php
| |---sbin //SAPI编译生成的二进制程序,php-fpm会放在这
| |---var //log、run日志