必须先安装build-essential(Ubuntu/Debian)或Development Tools(CentOS/RHEL),再安装autoconf 2.71+、automake 1.16+、libtool 2.4.7+、m4和pkg-config,否则phpize无法生成有效configure脚本,导致PHP 8.4扩展编译失败。

要在Linux上为PHP 8.4开发自定义扩展,必须先搭建能正确生成configure脚本的Autoconf工具链——缺少autoconf、automake或libtool会导致phpize失败、configure报错“no config.guess found”或生成空Makefile。
确认基础编译套件已安装
执行gcc --version确认GCC版本不低于5.3;低于该版本将无法通过PHP 8.4的configure校验。若未安装,Ubuntu/Debian用户运行:
sudo apt install build-essential
CentOS/RHEL/Rocky用户运行:
sudo yum groupinstall "Development Tools" 或 sudo dnf groupinstall "Development Tools"
【build-essential 或 Development Tools 是硬性前提,跳过这步后续所有phpize都会中断】
立即学习“PHP免费学习笔记(深入)”;
安装Autoconf生态核心工具
PHP 8.4扩展构建依赖autoconf 2.71+、automake 1.16+、libtool 2.4.7+。旧版本会触发“AC_PROG_CC_C99 not found”等致命错误。
Ubuntu/Debian:
sudo apt install autoconf automake libtool m4 pkg-config
CentOS/RHEL/Rocky/AlmaLinux:
sudo yum install autoconf automake libtool m4 pkgconfig
注意:CentOS 7默认autoconf为2.63,必须升级——否则phpize生成的configure在PHP 8.4下会跳过ZEND_EXTENSION宏检测,导致编译时找不到PHP API符号。
验证phpize能否生成有效configure
进入你的扩展源码目录(例如myext/),确保其中含config.m4文件。
运行:
phpize
检查是否生成了configure文件且非空:
ls -lh configure && head -n 5 configure
若输出中出现#! /bin/sh和ac_init字样,说明Autoconf链路通畅;若提示“Cannot find autoconf”,说明autoconf命令未被PATH识别,需检查是否安装成功或重装autoconf。
手动触发configure生成并测试
第一步:运行./configure --with-php-config=/usr/bin/php-config(路径需与which php-config一致)
第二步:执行make,观察是否进入编译流程而非卡在“checking for grep that handles long lines…”
第三步:运行make test,若看到PHPUnit风格的测试报告滚动输出,证明整个工具链已就绪——此时可安全进入扩展逻辑编码阶段。



















