./configure 是一次完整的环境探测过程,用于检查依赖、编译器、库文件及系统兼容性,成功则生成 Makefile 并输出 Configuration summary;失败时在 config.log 中记录详细错误,需安装对应-devel/-dev 包及基础工具链。

直接运行 ./configure 就是最有效的编译环境检查方式——它不是单纯配置,而是一次完整的环境探测过程。只要输出末尾出现 Configuration summary 且没有红色 error 提示,基本说明环境就绪。
运行最小化 configure 测试
进入 Nginx 源码目录后,执行:
./configure --prefix=/tmp/nginx-test
这个命令不安装、不生成实际服务路径,只做依赖扫描和构建可行性验证。成功时会列出启用/禁用的模块;失败时会明确提示缺失项,比如 PCRE library not found 或 OpenSSL library not found。此时立即查看当前目录下的 config.log 文件,里面记录了每条检测命令的执行结果和 stderr 输出,是定位问题最准的一手依据。
重点看 configure 是否能识别关键开发包
configure 脚本本身不依赖运行时库,而是查找头文件(.h)和静态库(.a 或 .so),所以必须装的是 -devel 或 -dev 包:
- RHEL/CentOS:安装
pcre-devel openssl-devel zlib-devel - Debian/Ubuntu:安装
libpcre3-dev libssl-dev zlib1g-dev
可用 pkg-config --modversion pcre openssl zlib 快速确认头文件是否可被识别。若报 Package pcre was not found,说明开发包未装或未生效。
确认基础工具链就位
configure 启动阶段就依赖以下工具,缺一即停:
-
gcc --version:必须有 C 编译器,Clang 用户需加CC=clang -
make --version:用于生成 Makefile,不可用则 configure 直接退出 -
which gcc && which make:确保它们在 PATH 中,否则 configure 找不到
CentOS 可一键补全:yum groupinstall "Development Tools";Ubuntu 推荐:apt-get install build-essential perl(perl 用于生成 man 文档)。
注意参数与路径的合法性
configure 报错不一定是缺依赖,也可能是参数写错或路径无权限:
-
--prefix指向的目录必须可写(避免用/usr或/etc,除非 root 执行) - 禁用模块用
--without-http_rewrite_module,不是--disable-rewrite - 添加第三方模块时,
--add-module=../xxx的路径必须是相对 configure 脚本所在位置的有效路径
不确定某个参数是否存在?运行 ./configure --help | grep ssl 快速筛选关键词。


















