Nginx编译所需基本库pcre、zlib、openssl

一、基本库介绍

pcre: (Perl Compatible Regular Expressions) 是一个用 C 语言编写的正则表达式库,用于进行文本匹配和搜索。它提供了与 Perl 正则表达式兼容的功能,并且广泛用于许多不同的软件项目中,如网页服务器、文本编辑器等。
zlib: 是一个数据压缩库,用于在应用程序中进行数据的压缩和解压缩。它提供了一些用于压缩和解压缩数据的函数,被许多软件项目使用,包括 Web 服务器、数据库系统等。
openssl: 是一个加密与安全库,提供了许多加密算法、安全通信协议和工具,用于数据的加密、解密、签名、验证等安全操作。它经常被用于构建安全的网络通信、SSL/TLS 连接以及数字证书管理等。

这三个库在许多软件项目中都可能会同时使用,因为它们提供了各种不同但互补的功能,例如一个 Web 服务器可能会同时使用 pcre 进行正则表达式匹配、zlib 进行数据压缩、openssl 进行安全通信。

二、nginx源码编译(安装基本库)

编译 nginx 时,需要确保系统中已安装以上这些库的开发版本,以便能够正确链接它们并生成可执行文件。通常情况下,可以通过包管理器安装这些库的开发版本,然后按照 nginx 的编译指南进行编译和安装。
Install | NGINX

  • 1、安装基本库
c 复制代码
# c编译器
yum -y install gcc gcc-c++ autoconf automake make
# 解析正则的pcre库
yum install -y pcre pcre-devel
# 添加对gzip的支持
yum install -y zlib zlib-devel
# SSL
yum -y install  openssl openssl-devel
  • 2、下载源码(nginx: download)后进行如下配置、编译安装:
c 复制代码
./configure
make
sudo make install
  • 3、遇到的错误
c 复制代码
编译Nginx会报如下错误,缺少安装openssl-devel库:
checking for OpenSSL library ... not found
checking for OpenSSL library in /usr/local/ ... not found
checking for OpenSSL library in /usr/pkg/ ... not found
checking for OpenSSL library in /opt/local/ ... not found
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.

三、nginx源码编译(不安装基本库)

  • 1、下载源码(nginx: download)后进行如下配置、静态编译安装:
c 复制代码
./configure
--with-openssl=/usr/local/src/openssl/openssl-3.0.7
--with-pcre=/usr/local/src/pcre/pcre-8.45
--with-zlib=/usr/local/src/zlib/zlib-1.2.13

make
sudo make install

注意:这里的路径,不是指pcre,zlib,openssl的安装路径,而是源码文件的路径

当使用 with-pcre=/path/to/pcre 选项并指定 PCRE 库的源码路径时,在编译 Nginx 过程中会使用指定路径下的 PCRE 源码进行编译。这意味着在编译完成后,生成的 Nginx 可执行文件会包含 PCRE 库的代码,并且不再依赖系统中已安装的 PCRE 库。

因此,当你指定了 PCRE 源码路径进行编译后,就不再需要依赖系统中已安装的 PCRE 库了。 Nginx 可执行文件中已经包含了 PCRE 库的代码,因此可以独立运行,而不需要外部的动态链接库。其他类似。

四、rpm包安装nginx

  • 1、安装基本库
c 复制代码
# c编译器
yum -y install gcc gcc-c++ autoconf automake make
# 解析正则的pcre库
yum install -y pcre
# 添加对gzip的支持
yum install -y zlib
# SSL
yum -y install openssl 
相关推荐
努力的悟空1 小时前
国土变更调查拓扑错误自动化修复工具的研究
运维·自动化
周末不下雨2 小时前
win11+ubuntu22.04双系统 | 联想 24 y7000p | ubuntu 22.04 | 把ubuntu系统装到1T的移动固态硬盘上!!!
linux·运维·ubuntu
耗同学一米八3 小时前
2024 年河北省职业院校技能大赛网络建设与运维赛项样题四
运维·网络
_半夏曲3 小时前
node.js、nginx、iis、tomcat针对部署方面的简述
nginx·node.js·tomcat
东华果汁哥4 小时前
【linux 免密登录】快速设置kafka01、kafka02、kafka03 三台机器免密登录
linux·运维·服务器
肖永威4 小时前
CentOS环境上离线安装python3及相关包
linux·运维·机器学习·centos
布鲁格若门4 小时前
CentOS 7 桌面版安装 cuda 12.4
linux·运维·centos·cuda
Eternal-Student4 小时前
【docker 保存】将Docker镜像保存为一个离线的tar归档文件
运维·docker·容器
dessler4 小时前
云计算&虚拟化-kvm-扩缩容cpu
linux·运维·云计算
DC_BLOG4 小时前
Linux-Apache静态资源
linux·运维·apache