编译安装 Nginx 需预先配置 GCC、OpenSSL-devel(或 libssl-dev)和 PCRE-devel(或 libpcre3-dev)三大依赖,再通过 ./configure 验证环境;旧版本可选手动编译 OpenSSL 1.1.1w 与 PCRE 8.45 并指定路径。

如果您计划从源码编译安装 Nginx,必须预先配置好基础编译工具链与核心依赖库。以下是为 Nginx 编译准备 GCC、OpenSSL 及 PCRE 的具体操作步骤:
一、安装 GCC 编译器套件
GCC 是 GNU 编译器集合,用于将 C 语言源码(如 Nginx 主体及模块)编译为可执行二进制文件。缺少 GCC 将导致 configure 阶段直接报错退出。
1、执行 yum 包管理器安装命令:sudo yum groupinstall "Development Tools"
2、验证 GCC 是否可用:gcc --version
3、确认 g++ 编译器存在(部分模块可能依赖 C++ 支持):g++ --version
二、安装 OpenSSL 开发库
OpenSSL 提供 TLS/SSL 加密功能支持,Nginx 启用 HTTPS 必须链接其头文件与静态/动态库。仅安装 openssl 命令行工具不足以满足编译需求,必须额外安装 openssl-devel。
1、在 CentOS/RHEL 系统中运行:sudo yum install openssl-devel
2、在 Ubuntu/Debian 系统中运行:sudo apt-get install libssl-dev
3、检查头文件路径是否存在:ls /usr/include/openssl/ssl.h
三、安装 PCRE 库开发文件
PCRE(Perl Compatible Regular Expressions)是 Nginx 实现 location 正则匹配、rewrite 指令等功能的底层依赖。configure 脚本会检测 pcre.h 头文件和 libpcre 库,缺失将禁用相关功能。
1、在 CentOS/RHEL 系统中运行:sudo yum install pcre-devel
2、在 Ubuntu/Debian 系统中运行:sudo apt-get install libpcre3-dev
3、验证库文件是否可被链接:pkg-config --modversion libpcre
四、验证全部依赖是否就绪
Nginx 源码根目录下的 configure 脚本可一次性检测所有关键依赖是否满足。该步骤不进行实际编译,仅用于确认环境完整性。
1、进入解压后的 Nginx 源码目录:cd nginx-*
2、运行最小化配置检查:./configure --without-http_rewrite_module --without-http_ssl_module --prefix=/tmp/nginx-test
3、若输出末尾出现 configuration done,表示 GCC、OpenSSL、PCRE 均已正确识别
五、手动编译安装最新版 PCRE(可选替代方案)
系统包管理器提供的 PCRE 版本可能过旧,某些 Nginx 新特性要求 PCRE 8.41+。此时需从官网获取源码并手动构建。
1、下载 PCRE 8.45 源码包:wget https://ftp.pcre.org/pub/pcre/pcre-8.45.tar.gz
2、解压并进入目录:tar -zxf pcre-8.45.tar.gz && cd pcre-8.45
3、配置安装路径并编译:./configure --prefix=/usr/local/pcre && make && sudo make install
4、告知 Nginx 使用该路径:./configure --with-pcre=/usr/local/pcre
六、手动编译安装 OpenSSL 1.1.1w(可选替代方案)
部分发行版默认 OpenSSL 版本低于 1.0.2,或不包含 TLSv1.3 支持。Nginx 1.19.1+ 推荐使用 OpenSSL 1.1.1 系列。
1、下载 OpenSSL 1.1.1w 源码:wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
2、解压并进入目录:tar -zxf openssl-1.1.1w.tar.gz && cd openssl-1.1.1w
3、配置并安装到本地路径:./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
4、执行编译与安装:make && sudo make install
5、Nginx configure 时指定路径:./configure --with-openssl=/usr/local/openssl










