关键在先正确获取源码再补齐编译环境:从官网下载nginx-1.28.0.tar.gz,解压后执行./configure前须安装gcc、pcre-devel、zlib-devel、openssl-devel等依赖,否则报cc未找到或库缺失错误;安装后验证工具版本,再运行./configure、make、make install完成编译安装。

Linux 下下载 Nginx 源码并解决编译依赖报错,关键在两步:**先正确获取源码,再补齐编译环境**。很多报错(比如 cc: command not found、checking for PCRE library not found)不是 Nginx 本身的问题,而是系统缺编译器或开发库。
下载 Nginx 官方源码包
推荐从 Nginx 官网下载稳定版(如 nginx-1.28.0.tar.gz),路径统一、版本可控:
- 进入临时或常用源码目录,例如:
cd /tmp或cd /usr/local/src - 用
wget直接拉取:wget https://nginx.org/download/nginx-1.28.0.tar.gz - 解压:
tar -zxvf nginx-1.28.0.tar.gz - 进入源码目录:
cd nginx-1.28.0
快速识别并安装缺失的编译依赖
执行 ./configure 前不装依赖,大概率会失败。常见报错和对应依赖如下:
-
“C compiler cc is not found” → 缺 GCC 编译器:装
gcc和make -
“SSL modules require the OpenSSL library” → 缺 OpenSSL 开发头文件:装
openssl-devel(RHEL系)或libssl-dev(Debian系) -
“the HTTP gzip module requires the zlib library” → 缺 zlib 开发包:装
zlib-devel或zlib1g-dev -
“PCRE library not found” → 缺正则支持库:装
pcre-devel(RHEL 8 及以前)或pcre2-devel(RHEL 9+/Alma/Rocky)或libpcre3-dev(Ubuntu/Debian)
不同系统一键安装命令:
-
RHEL/CentOS 7/8:
yum groupinstall "Development Tools" && yum install gcc gcc-c++ make pcre-devel zlib-devel openssl-devel -
RHEL 9+/Rocky/Alma:
dnf groupinstall "Development Tools" && dnf install gcc gcc-c++ make pcre2-devel zlib-devel openssl-devel -
Ubuntu/Debian:
apt update && apt install build-essential libpcre3-dev zlib1g-dev libssl-dev
验证环境并完成编译安装
装完依赖后,别急着重跑 ./configure,先确认基础工具就位:
- 检查 GCC:
gcc --version - 检查 Make:
make --version - 检查 pkg-config(用于查找库):
pkg-config --version
都正常后,回到 Nginx 源码目录,执行标准三步:
- 配置(可加常用模块):
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module - 编译:
make - 安装:
sudo make install
若 configure 过程中仍提示某库 not found,按提示名称补装对应 -dev 或 -devel 包即可,不用重装全部。
注意两个目录别混淆
源码解压目录(如 /tmp/nginx-1.28.0)只是“施工图纸”,装完可删;真正运行的是安装目录(默认 /usr/local/nginx),里面含 conf、html、sbin/nginx 等。你的网站文件必须放在这里的 html/ 下,而不是源码目录里。











