编译nginx时提示“zlib library not found”说明缺少zlib开发包,需安装含zlib.h和libz.a/.so的-devel或-dev包;ubuntu用zlib1g-dev,centos/rhel用zlib-devel,也可源码编译zlib并用--with-zlib=指定路径。

编译 Nginx 源码时提示 “zlib library not found” 或 “the HTTP gzip module requires the zlib library”,说明系统缺少 zlib 开发文件,不是只装运行库就行,必须安装带头文件和静态链接支持的 -dev 或 -devel 包。
确认 zlib 开发包是否已安装
执行以下命令检查关键文件是否存在:
-
ls /usr/include/zlib.h—— 应输出该头文件路径 -
pkg-config --exists zlib && echo "OK" || echo "Missing"—— 返回 OK 表示 pkg-config 能识别 zlib
按系统类型安装对应开发包
不同发行版的包名和安装命令不同,不能混用:
-
Ubuntu/Debian 系统:
sudo apt update && sudo apt install zlib1g-dev -
CentOS/RHEL/Rocky/AlmaLinux 7–8:
sudo yum install zlib-devel -
Rocky/AlmaLinux/CentOS 9+ 或 Fedora:
sudo dnf install zlib-devel -
银河麒麟 V10(离线环境):需提前下载
zlib-devel-*.rpm及其依赖(如glibc-devel),用rpm -ivh *.rpm顺序安装
使用源码安装 zlib(仅限无网络或定制需求)
若无法用包管理器,或需指定特定版本(如适配旧版 Nginx),可手动编译 zlib:
- 下载 zlib 源码(如
zlib-1.3.1.tar.gz),解压后进入目录 - 执行:
./configure --prefix=/usr/local/zlib && make && sudo make install - Nginx 配置时显式指定路径:
./configure --with-zlib=/usr/local/zlib ...
验证与重试
安装完成后,回到 Nginx 源码目录,清理上次残留(如有):
-
make clean(可选,避免旧对象干扰) - 重新运行 configure:
./configure --prefix=/usr/local/nginx [其他参数] - 若仍报错,检查错误信息末尾是否提示具体缺失符号(如
deflateInit2_),可能是 zlib 版本太低或未正确链接











