离线部署Nginx的安装详细教程+遇到的问题和解决方法

这篇具有很好参考价值的文章主要介绍了离线部署Nginx的安装详细教程+遇到的问题和解决方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这篇文章主要就是针对内网部署,不能通过上网的方式下载某些安装软件的依赖包,全程全是通过下载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:是一个开源的加密库,提供了各种加密算法和安全协议的实现。(必须)

下载好文件后,nginx包上传到服务器的root/data目录下(没有该目录则新建),上传的目录都不影响随意,但是要记得openssl、pcre、zlib的解压路径方便后续编译Nginx的时候指定目录。

注意事项:

在安装Nginx的时候,一定要根据你要安装Nginx的版本,查阅一下对应的openssl、pcre、zlib版本不然,你在执行make的时候就会报错。以下是我在升级Nginx为最新的时候,还是用的之前它相关依赖包的版本时报错的信息。

bjs/src/event/ngx_event_openssl.o: In function `ngx_ssl_error':

/data/nginx-1.24.0/src/event/ngx_event_openssl.c:3632: undefined reference to `ERR_peek_error_data'

objs/src/event/ngx_event_openssl.o: In function `ngx_ssl_sendfile':

/data/nginx-1.24.0/src/event/ngx_event_openssl.c:3025: undefined reference to `SSL_sendfile'

objs/src/event/ngx_event_openssl.o: In function `ngx_ssl_ticket_key_callback':

/data/nginx-1.24.0/src/event/ngx_event_openssl.c:4565: undefined reference to `EVP_CIPHER_get_iv_length'

objs/src/event/ngx_event_openssl.o: In function `ngx_ssl_check_host':

/data/nginx-1.24.0/src/event/ngx_event_openssl.c:4831: undefined reference to `SSL_get1_peer_certificate'

objs/src/event/ngx_event_openssl.o: In function `ngx_ssl_get_raw_certificate':

/data/nginx-1.24.0/src/event/ngx_event_openssl.c:5337: undefined reference to `SSL_get1_peer_certificate'

objs/src/event/ngx_event_openssl.o: In function `ngx_ssl_get_subject_dn':

/data/nginx-1.24.0/src/event/ngx_event_openssl.c:5461: undefined reference to `SSL_get1_peer_certificate'

objs/src/event/ngx_event_openssl.o: In function `ngx_ssl_get_issuer_dn':

/data/nginx-1.24.0/src/event/ngx_event_openssl.c:5515: undefined reference to `SSL_get1_peer_certificate'

objs/src/event/ngx_event_openssl.o: In function `ngx_ssl_get_subject_dn_legacy':

/data/nginx-1.24.0/src/event/ngx_event_openssl.c:5571: undefined reference to `SSL_get1_peer_certificate'

objs/src/event/ngx_event_openssl.o:/data/nginx-1.24.0/src/event/ngx_event_openssl.c:5619: more undefined references to `SSL_get1_peer_certificate' follow

collect2: error: ld returned 1 exit status

make[1]: *** [objs/Makefile:242: objs/nginx] Error 1

make[1]: Leaving directory '/data/nginx-1.24.0'

make: *** [Makefile:10: build] Error 2

正式开始前需要确认gcc、g++开发库已经预先安装好。为什么呢?是因为亲身经历,如果没有提前安装好gcc、g++的话在进行后续编译Nginx的时候就行出现这个问题

./configure: error: the HTTP rewrite module requires the PCRE library.

You can either disable the module by using --without-http_rewrite_module

option, or install the PCRE library into the system, or build the PCRE library

statically from the source with nginx by using --with-pcre=<path> option.

然后这个大概意思就是你没有PCRE的库需要安装,去网上查找安装PCRE的教程,但是在安装PCRE的时候又会出现大概这个问题configure: error: C++ compiler missing or inoperational 就是你没有c++的环境,即需要安装gcc相关包,然后又一步一步的找,发现安装gcc的时候又需要3个依赖包(gmp、mpc、mprf)然后又去找包解压编译安装,但到时候就真的安装成功吗?不一定,因此我这里换了一种思路,就是先把c++的相关环境配置好,再进行相关Nginx的操作。具体步骤如下:

二、检查GCC、G++是否安装

检查gcc是否安装

gcc --version

检查g++是否安装

g++ --version

离线安装

阿里云盘下载地址:https://www.aliyundrive.com/s/VpQ3g4L6oub

提取码: sj94

离线安装环境:离线安装包:gcc环境安装包

gcc安装包内容

nginx依赖包离线安装,运维,nginx,java

g++安装包内容

nginx依赖包离线安装,运维,nginx,java

下载后,把安装包解压到服务器上,先安装gcc,再安装g++。分别执行两个文件夹下的install.sh

执行命令 sh install.sh 它其实就是去执行rpm -ivh 等全部需要安装命令,这样就可以不用手动去执行了如果执行上述命令出现了问题(一般都是版本问题) 有问题可以手动执行下列图片中所有的rpm。

例:rpm -ivh gcc-4.8.5-4.el7.x86_64.rpm

同一个目录下批量安装rpm文件:rpm -ivh *rpm

在执行上述命令的时候,如遇版本冲突问题,请在命令上追加 --replacefiles 参数。

例:rpm -ivh gcc-4.8.5-4.el7.x86_64.rpm --replacefiles

如果在执行上述加了参数的命令执行的时候仍然报错:类似于下面这种错误:

error: Failed dependencies: 
cpp = 4.8.5-4.el7 is needed by gcc-4.8.5-4.el7.x86_64 libgomp = 4.8.5-4.el7 is needed by gcc-4.8.5-4.el7.x86_64 gcc < 8 conflicts with (installed) UnionTech-rpm-config-129-1.uelc20.03.x86_64

这个意思大概就是依赖错误;出现这种的原因是依赖关系非常复杂,当你试图先安装任何一个包时都会出现这样的依赖关系错误,这时候你就应该强制安装了,我认为只要你把服务或软件需要的包都装上,强制安装也不会出问题的,不会有什么影响。

解决方法:强制安装需要安装的rpm文件 参数 --force(强制) --nodeps(不查找依赖关系)

例:rpm -ivh gcc-4.8.5-4.el7.x86_64.rpm --force --nodeps

三、安装pcre

tar -zxvf pcre-8.45.tar.gz

cd pcre-8.45/

./configure

make

make install

可根据实际需要进行选择相关安装路径

四、安装zlib

tar -zxvf zlib-1.2.13.tar.gz

cd zlib-1.2.13/

./configure

make

make install

可根据实际需要进行选择相关安装路径

五、安装openssl

tar -zxvf openssl-1.1.0h.tar.gz

cd openssl-1.1.0h/

./config

make

make install

可根据实际需求进行选择相关路径安装

六、安装Nginx

tar -zxvf nginx-1.20.1.tar.gz

cd nginx-1.20.1/

./configure --prefix=/data/nginx --with-http_stub_status_module --with-http_ssl_module

--prefix=/data/nginx:指定安装目录为/data/nginx。在编译和安装完成后,软件将被安装到该目录下.

--with-http_stub_status_module:启用 HTTP Stub Status 模块。该模块是 Nginx 的一个内置模块,用于获取 Nginx 服务器的状态信息。

--with-http_ssl_module:启用 HTTP SSL 模块。该模块使得 Nginx 支持通过 HTTPS 提供安全的加密传输。

单独执行(./configure --prefix=/data/nginx

)上述命令可能会出现这样的问题:没有PCRE库

./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.

解决方法;在执行./configure 后面添加pcre、zlib、openssl的解压路径 如下:

./configure --prefix=/data/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/data/pcre/pcre-8.45 --with-zlib=/data/zlib/zlib-1.2.13 

--with-openssl=/data/openssl/openssl-1.1.0h

make

make install

在安装nginx的时候执行:make命令 如果出现类似下列这样的问题,大概是警告也算错,因此make命令执行不下。

src/event/ngx_event_openssl.c:5354:5: error: ‘ENGINE_free’ is deprecated (declared at /usr/local/include/openssl/engine.h:493): Since OpenSSL 3.0 [-Werror=deprecated-declarations]
     ENGINE_free(engine);
     ^
cc1: all warnings being treated as errors

解决方法;方法有很多,可自行百度,我选择的是重新换个低版本的,由于之前使用的openssl-3.0.9版本,现在换成了openssl-1.1.0。重新执行上面的命令 ./config .. 再去编译make,就成功了。

七、测试nginx是否安装成功

nginx启动

cd /data/nginx/sbin

./nginx

或者

/data/nginx/sbin/nginx

nginx关闭

ps –ef | grep nginx 列出Nginx的相关进程

kill pid 杀死Nginx相关进程,也相当于停止Nginx

/data/nginx/sbin/nginx -s stop 停止Nginx

参考博客:

Linux环境下离线安装和配置nginx_linux 离线安装_半山惊竹的博客-CSDN博客

(173条消息) 当安装、卸载件包时,出现依赖问题 error: Failed dependencies_failed dependencies kernel-headers is obsoleted_cherish1forever的博客-CSDN博客

上述涉及到的安装包,可私我

以上也是本人在实际内网部署Nginx操作的步骤以及遇到的问题及相关解决方法,仅代表个人意见文章来源地址https://www.toymoban.com/news/detail-660917.html

到了这里,关于离线部署Nginx的安装详细教程+遇到的问题和解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 下载安装anaconda和pytorch的详细方法,以及遇到的问题和解决办法

    首先需要下载Anaconda,可以到官网Anaconda官网或者这里提供一个镜像网站去下载anaconda镜像网站 安装步骤可参考该文章:Anaconda安装步骤,本篇不再赘述 注意环境变量的配置,安装好Anaconda之后一定要在环境变量中添加以下内容: 安装好Anaconda后,按下Windows按钮,找到 Anacond

    2024年03月26日
    浏览(35)
  • 记录使用nginx部署静态资源流程,以及遇到的访问静态资源404问题

    将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署实现 动静分离 ,提高用户访问静态代码的速度,降低对后台应用访问,减轻后台服务器的压力。 这里我选择放在了 html文件夹 下,(也可以放在和html文件夹同级,或其它位置 打开 conf文件夹 打开总配置文

    2024年02月08日
    浏览(48)
  • docker离线安装部署详细步骤

    1、服务器相关 IP地址 服务器作用 系统 其他 192.168.80.80 docker Anolis OS release 7.9 centos 步骤一致 2、官方下载地址 https://download.docker.com/linux/static/stable/x86_64/ 1、上传解压到 /data 目录下 2、创建软链接并后台启动 docker 3、检查进程和版本 4、配置 systemctl 启动 注意事项: 1)软链接

    2024年02月16日
    浏览(30)
  • 前后端分离项目(gin+gorm+vue3)腾讯云部署详细教程(Xshell安装及使用,go,mysql,nginx安装及配置)

    1. 购买服务器 进入腾讯云官网点击最新活动,进入云+校园专区,我购买的是第一个 购买完成后,进入控制台,云产品选择轻量应用服务器,即可查看到自己的服务器,记住自己的公网IP 2. 重置密码 点击进入服务器详情,初次使用需重置密码 点击重置密码按提示操作即可,

    2024年02月06日
    浏览(50)
  • Linux离线环境安装部署docker(超详细)

    可以参考菜鸟教程:https://www.runoob.com/docker/centos-docker-install.html 安装插件 添加仓库地址: 安装指定版本的docker-ce和docker-ce-cli: 启动docker,设为开机自启动: docker-Linux下载地址 搭建docker环境准备 在能连网的服务器上下载所需的镜像,例如 上传docker压缩包及镜像上传到需要部署的服

    2024年02月03日
    浏览(43)
  • Jenkins离线安装部署教程简记

    在上一篇文章基于Gitee实现Jenkins自动化部署SpringBoot项目中,我们了解了如何完成基于Jenkins实现自动化部署。 对于某些公司服务器来说,是不可以连接外网的,所以笔者专门整理了一篇文章总结一下,如何基于内网直接部署Jenkins。 需要提前说明的是,本文必须要求你具备一

    2024年02月04日
    浏览(30)
  • 本地离线安装selenium超详细教程

    经过下午几个小时的奋战,终于把selenium到的本地离线终于搞定了。 废话不多说,直接上操作步骤: 1.去官网下载安装包:下载地址 2.此处强烈大家建议下载selenium的3.0+的版本(此处省略一万字),我给的地址可以让你直接进入选择历史版本的跳转页面。 3.往下拉,到3左右的

    2024年02月02日
    浏览(20)
  • FISCO BCOS离线部署问题记录并解决

    因项目需求团队要求,部署的服务器都不能访问外网,所以自己尝试了区块链底层网络节点、控制台、Webase 等离线部署,当然也遇到遇到坑,由此记录下来。 借鉴参考这个博文思路完成的底层链部署安装,即在一台有网络的服务器先在线安装好,然后将提前预设好的无网络

    2024年02月01日
    浏览(24)
  • 使用nginx部署前端项目(超详细教程)

    (所使用前端模版已经上传到个人资源,各位敬请免费领取) 所有文章不设限,我们相遇偶然,相散坦然,互不打扰,各自安好,向阳而生 直接安装报错复现 解释: Nginx在CentOS官方软件仓库中不可用,但它在EPEL (额外的CentOS软件包)软件仓库中可用,因此安装前需要先安装

    2024年02月15日
    浏览(38)
  • Ubuntu安装NVIDIA-Docker详细教程(离线&&在线)

    B站|公众号:啥都会一点的研究生 虽然在前一贴详细说了安装步骤,Ubuntu安装、卸载Docker,常用镜像、容器操作命令,但还是将其总结写在此处 https://github.com/NVIDIA/nvidia-docker/ 需要代理才能安装。 首先确认已经安装好nvidia的驱动,可以用 nvidia-smi 命令查看 已将离线文件打包

    2024年02月05日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包