首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >nginx 手动离线安装 及依赖包安装(pcre+zlib+openssl)

nginx 手动离线安装 及依赖包安装(pcre+zlib+openssl)

作者头像
默 语
发布2024-11-20 15:50:59
发布2024-11-20 15:50:59
3.3K00
代码可运行
举报
文章被收录于专栏:JAVAJAVA
运行总次数:0
代码可运行

摘要:

本文介绍了使用源码编译安装 Nginx 的详细步骤及编译参数信息。首先,提到了必需的依赖包,包括 PCRE、Zlib 和 OpenSSL,并提供了它们的下载链接。随后,详细说明了编译环境的准备工作,包括检查和安装 gcc、g++、以及 make。接着,逐步介绍了如何安装各个依赖包以及 Nginx 的过程,包括解压、配置、编译和安装。最后,给出了启动 Nginx 的命令,并提示如何验证安装是否成功。

nginx:http://nginx.org/en/download.html (版本:nginx-1.20.1 tar.gz) pcre:https://sourceforge.net/projects/pcre/files/pcre/8.45/(版本:pcre-8.45.tar.gz) zlib:http://www.zlib.net/(版本:zlib-1.2.13.tar.gz) oppenssl:https://www.openssl.org/source/(版本:openssl-1.1.0h.tar.gz)

可自行根据个人需要下载适合的依赖包

Pcre:是一个正则表达式库。(必须)

Zlib:是一个开源的数据压缩库,提供了对数据的无损压缩和解压功能。(必须)

Openssl:是一个开源的加密库,提供了各种加密算法和安全协议的实现。(必须)

本人把所有tar.gz包都放在 /usr/local/nginx目录下 ( 权限777 )

nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息。 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好

查看 gcc 版本

代码语言:javascript
代码运行次数:0
运行
复制
$ gcc -v
$ gcc --version

查看 g++ 版本

代码语言:javascript
代码运行次数:0
运行
复制
$ g++ -v
$ g++ --version

安装make:

代码语言:javascript
代码运行次数:0
运行
复制
yum -y install gcc automake autoconf libtool make

安装g++:

代码语言:javascript
代码运行次数:0
运行
复制
$ sudo yum install gcc g++	# 通过下载列表中提供的地址下载安装包, 并安装

或者

代码语言:javascript
代码运行次数:0
运行
复制
命令:sudo yum install -y gcc-c++

gcc g++ 我这边离线安装问题比较多;大家自行尝试 离线版本: 阿里云盘下载地址:https://www.aliyundrive.com/s/VpQ3g4L6oub

提取码: sj94

1、安装pcre

解压:tar -zxvf pcre-8.34.tar.gz 进入解压目录:cd pcre-8.34 可要需要赋予权限 chmod 777 configure 配置:./configure 编译:make 安装:make install

如出现:

代码语言:javascript
代码运行次数:0
运行
复制
something went wrong bootstrapping makefile fragmentsfor automatic dependency tracking, If GNU make was not used, considerre-running the configure script with MAKE-"gmake" (or whatever isnecessary). You can also try re-running configure with the--disable-dependency tracking' option to at least be able to buildthe package (albeit without support for automatic dependency tracking)See config.log' for more details

把上面的make安装下就行了;安装make:

(各个版本pcre和pcre2下载网址:https://ftp.pcre.org/pub/pcre/)

2、安装OpenSSL

解压:tar -zxvf openssl-1.1.1g.tar.gz 进入解压目录:cd openssl-1.1.1g 可要需要赋予权限 chmod 777 config 配置:./config 编译:make 安装:make install

如果输入openssl version不显示版本号

在root用户下执行:

代码语言:javascript
代码运行次数:0
运行
复制
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
代码语言:javascript
代码运行次数:0
运行
复制
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

3、安装zlib

解压:tar -zxvf zlib-1.2.11.tar.gz 进入解压目录:cd zlib-1.2.11 可要需要赋予权限 chmod 777 configure 配置:./configure 编译:make 安装:make install

4.安装nginx

解压:tar -zxvf nginx-1.16.1.tar.gz 进入解压目录:cd nginx-1.16.1 接下来是重点!!!(下面配置这条命令在一行, 最好粘到文本编辑器里编辑一下) 配置:./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/usr/local/nginxLibs/pcre-8.34 --with-zlib=/usr/local/nginxLibs/zlib-1.2.11 --with-openssl=/usr/local/nginxLibs/openssl-1.1.1g

或者(我用的下面的)

./configure --prefix=/data/soft/nginx/nginx/nginx-ywc --with-http_stub_status_module --with-http_ssl_module --with-pcre=/data/soft/nginx/nginx/pcre-8.45 --with-zlib=/data/soft/nginx/nginx/zlib-1.3.1 --with-openssl=/data/soft/nginx/nginx/openssl-1.1.0l

这段代码是在配置nginx编译安装的命令。具体解释如下: /usr/local/nginx/nginx 这是一个新的路径

  • --sbin-path: 指定nginx可执行文件的路径。
  • --conf-path: 指定nginx配置文件的路径。
  • --pid-path: 指定nginx进程ID文件的路径。
  • --with-http_ssl_module: 启用HTTP SSL模块,使nginx支持HTTPS。
  • --with-pcre: 指定PCRE库的路径,PCRE是Perl Compatible Regular Expressions的缩写,用于nginx的正则表达式匹配。
  • --with-zlib: 指定Zlib库的路径,Zlib是用于数据压缩和解压的库,nginx用它来处理HTTP数据的压缩。
  • --with-openssl: 指定OpenSSL库的路径,OpenSSL用于实现SSL/TLS协议,从而使nginx支持HTTPS。

它指定了 Nginx 的可执行文件路径、配置文件路径、进程ID文件路径,并启用了 HTTP SSL 模块以支持 HTTPS。此外,它还指定了 PCRE、Zlib 和 OpenSSL 库的路径,这些库用于正则表达式匹配、数据压缩和解压、以及实现 SSL/TLS 协议,从而完善了 Nginx 的功能。

(查看若有错误去最下边常见错误找) 编译:make 安装:make install

安装成功没有错误的话,你的 /usr/local/nginx/nginx 目录下如下:

5.启动nginx /usr/local/nginx/nginx ./sbin/nginx 启动 如果都没有错误,浏览器访问 服务器ip:80 端口,出现"Welcome to nginx!",恭喜你安装成功!

代码语言:javascript
代码运行次数:0
运行
复制
 ./sbin/nginx -V   #查看是否依赖

记得开放防火墙的端口: 查看防火墙开启的端口

firewall-cmd --list-ports

firewall-cmd --state 查看防火墙状态

(如未开启)开启防火墙 如果防火墙未运行,您可以使用下面的命令来开启它:

代码语言:javascript
代码运行次数:0
运行
复制
sudo systemctl start firewalld

为了确保防火墙在系统启动时自动启动,可以使用以下命令:

代码语言:javascript
代码运行次数:0
运行
复制
sudo systemctl enable firewalld

为防火墙开启端口,可以使用以下命令添加端口规则

firewall-cmd --zone=public --add-port=YOUR_PORT_NUMBER/TCP --permanent

除已开启的端口 如果您需要删除某个端口的开放规则,可以使用以下命令:

代码语言:javascript
代码运行次数:0
运行
复制
sudo firewall-cmd --zone=public --remove-port=YOUR_PORT_NUMBER/TCP --permanent

之后同样需要执行:

代码语言:javascript
代码运行次数:0
运行
复制
sudo firewall-cmd --reload

示例:开启80和443端口 重新加载firewalld以使更改生效:

firewall-cmd --reload

一次性添加多个端口规则

firewall-cmd --zone=public --add-port=PORT1/TCP --add-port=PORT2/TCP --add-port=PORT3/UDP --permanent

案例demo:

sudo firewall-cmd --zone=public --add-port=8761/tcp --permanent

注意事项及常见错误解决方法:

1.安装nginx,执行配置一步后出现错误如下错误:(实踩大坑!!!)

src/core/ngx_regex.h:15:18: error: pcre.h

src/core/ngx_regex.h:24: error: expected specifier-qualifier-list before ‘pcre’

解决方法: 此时很有可能是pcre版本太高或者你装的是pcre2,去上边手动下载换低版本pcre即可.

2.nginx完全卸载

find / -name nginx 或者 find / -name nginx*

rm -rf 上边找到nginx路径

3.pcre卸载

在pcre解压目录下执行: sudo make uninstall

然后rm -rf pcre解压目录(或者直接手动右键删除 你懂的 简单暴力0.0)

总结:

本文提供了从源码编译安装 Nginx 的全面指南,涵盖了准备工作、依赖包的下载和安装、以及 Nginx 的配置和启动过程。通过详细说明每个步骤和命令的含义,读者可以轻松地跟随指南完成 Nginx 的安装。同时,提供了解决常见错误的方法,帮助读者顺利完成安装并验证是否成功。


参考博客:12

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 查看 gcc 版本
  • 查看 g++ 版本
    • 1、安装pcre
    • 2、安装OpenSSL
    • 3、安装zlib
    • 4.安装nginx
      • 注意事项及常见错误解决方法:
  • 总结:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档