源码编译 PHP 时在配置阶段中断,提示找不到 libxml2 的头文件。乍看像缓存或者权限的锅,追下去往往不是。
yum install -y libxml2-devel libcurl-devel libpng-devel # 或 apt install -y libxml2-dev libcurl4-openssl-dev ./configure --with-libxml-dir=/usr
追下去是这么回事:系统只装了运行库,没有安装开发包,编译时找不到头文件与链接库。
「编译依赖缺失」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。
线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。
权限不要一口气开到最大,先加到够用再往上试,范围小才好收。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。
改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。
具体做法是,安装对应的开发包;确认头文件路径;重新执行配置并保留日志。
验收就看一点,配置阶段通过,编译可以继续。