编译Nginx时提示“zlib library not found”或“zlib.h: No such file or directory”,说明缺少zlib开发包(含zlib.h头文件和libz.a/.so),需按系统安装对应-devel或-dev包:Ubuntu用zlib1g-dev,CentOS/RHEL 7–8用zlib-devel,9+用dnf install zlib-devel;也可源码编译zlib并用--with-zlib=指定路径。

编译 Nginx 时提示 “zlib library not found” 或 “zlib.h: No such file or directory”,说明系统缺少 zlib 开发包,不是运行库没装,而是头文件和静态/动态链接支持缺失。
确认 zlib 开发文件是否真存在
执行以下命令快速验证:
- ls /usr/include/zlib.h —— 应输出路径,否则头文件缺失
- pkg-config --exists zlib && echo "OK" || echo "Missing" —— 返回 OK 才表示开发环境可识别
- find /usr -name "libz.so*" 2>/dev/null | head -n1 —— 确保有可用的共享库
按发行版安装对应-devel或-dev包
不能通用,必须匹配系统类型:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- Ubuntu/Debian:运行 sudo apt update && sudo apt install zlib1g-dev
- RHEL/CentOS 7–8 / Anolis / 银河麒麟 V10(RPM系):运行 sudo yum install zlib-devel
- RHEL/CentOS 9+ / Rocky / AlmaLinux / Fedora:运行 sudo dnf install zlib-devel
离线或需指定版本时源码安装 zlib
适用于无网络、国产系统未提供合适-devel包,或需适配旧版 Nginx 的场景:
- 下载 zlib 源码(如 zlib-1.3.1.tar.gz),解压后进入目录
- 执行:./configure --prefix=/usr/local/zlib && make && sudo make install
- Nginx configure 时显式指定路径:./configure --with-zlib=/usr/local/zlib [其他参数]
重试前清理并验证
避免残留干扰:
- 回到 Nginx 源码目录,执行 make clean(可选但推荐)
- 重新运行 ./configure,观察是否仍有 zlib 相关报错
- 若仍失败,检查 objs/autoconf.log 末尾,看是否提示具体符号(如 deflateInit2_)未定义——可能是 zlib 版本太低或路径未生效

















