离线部署Nginx的安装详细教程+遇到的问题和解决方法
这篇文章主要就是针对内网部署,不能通过上网的方式下载某些安装软件的依赖包,全程全是通过下载Nginx相关的包,上传到服务器上,最终在服务器上进行解压安装操作。
一、下载Nginx的依赖
nginx: (版本:nginx-1.20.1 tar.gz)
pcre:(版本:pcre-8.45.tar.gz)
zlib:(版本:zlib-1.2.13.tar.gz)
:(版本:-1.1.0h.tar.gz)
可自行根据个人需要下载适合的依赖包
Pcre:是一个正则表达式库。(必须)
Zlib:是一个开源的数据压缩库,提供了对数据的无损压缩和解压功能。(必须)
:是一个开源的加密库,提供了各种加密算法和安全协议的实现。(必须)
下载好文件后,nginx包上传到服务器的root/data目录下(没有该目录则新建),上传的目录都不影响随意,但是要记得、pcre、zlib的解压路径方便后续编译Nginx的时候指定目录。
注意事项:
在安装Nginx的时候,一定要根据你要安装Nginx的版本,查阅一下对应的、pcre、zlib版本不然,你在执行make的时候就会报错。以下是我在升级Nginx为最新的时候,还是用的之前它相关依赖包的版本时报错的信息。
bjs/src/event/.o: In `':
/data/nginx-1.24.0/src/event/.c:3632: to `'
objs/src/event/.o: In `':
/data/nginx-1.24.0/src/event/.c:3025: to `'
objs/src/event/.o: In `':
/data/nginx-1.24.0/src/event/.c:4565: to `ngth'
objs/src/event/.o: In `':
/data/nginx-1.24.0/src/event/.c:4831: to `icate'
objs/src/event/.o: In `':
/data/nginx-1.24.0/src/event/.c:5337: to `icate'
objs/src/event/.o: In `dn':
/data/nginx-1.24.0/src/event/.c:5461: to `icate'
objs/src/event/.o: In `n':
/data/nginx-1.24.0/src/event/.c:5515: to `icate'
objs/src/event/.o: In `':
/data/nginx-1.24.0/src/event/.c:5571: to `icate'
objs/src/event/.o:/data/nginx-1.24.0/src/event/.c:5619: more to `icate'
: error: ld 1 exit
make[1]: *** [objs/:242: objs/nginx] Error 1
make[1]: '/data/nginx-1.24.0'
make: *** [: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_moduleoption, or install the PCRE library into the system, or build the PCRE librarystatically from the source with nginx by using --with-pcre= option.
然后这个大概意思就是你没有PCRE的库需要安装,去网上查找安装PCRE的教程,但是在安装PCRE的时候又会出现大概这个问题: error: C++ or 就是你没有c++的环境,即需要安装gcc相关包,然后又一步一步的找,发现安装gcc的时候又需要3个依赖包(gmp、mpc、mprf)然后又去找包解压编译安装,但到时候就真的安装成功吗?不一定,因此我这里换了一种思路,就是先把c++的相关环境配置好,再进行相关Nginx的操作。具体步骤如下:
二、检查GCC、G++是否安装
检查gcc是否安装
gcc --version
检查g++是否安装
g++ --version
离线安装
阿里云盘下载地址:
提取码: sj94
离线安装环境:离线安装包:gcc环境安装包
gcc安装包内容
g++安装包内容
下载后,把安装包解压到服务器上,先安装gcc,再安装g++。分别执行两个文件夹下的.sh。
执行命令 sh .sh它其实就是去执行rpm -ivh 等全部需要安装命令,这样就可以不用手动去执行了如果执行上述命令出现了问题(一般都是版本问题) 有问题可以手动执行下列图片中所有的rpm。
例:rpm -ivh gcc-4.8.5-4.el7..rpm
同一个目录下批量安装rpm文件:rpm -ivh *rpm
在执行上述命令的时候,如遇版本冲突问题,请在命令上追加--参数。
例:rpm -ivh gcc-4.8.5-4.el7..rpm --
如果在执行上述加了参数的命令执行的时候仍然报错:类似于下面这种错误:
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(强制) --(不查找依赖关系)
例:rpm -ivh gcc-4.8.5-4.el7..rpm--force --
三、安装pcre
tar -zxvf pcre-8.45.tar.gz
cd pcre-8.45/
./
make
make
可根据实际需要进行选择相关安装路径
四、安装zlib
tar -zxvf zlib-1.2.13.tar.gz
cd zlib-1.2.13/
./
make
make
可根据实际需要进行选择相关安装路径
五、安装
tar -zxvf -1.1.0h.tar.gz
cd -1.1.0h/
./
make
可根据实际需求进行选择相关路径安装
六、安装Nginx
tar -zxvf nginx-1.20.1.tar.gz
cd nginx-1.20.1/
./--=/data/nginx --with-ule --with-
--=/data/nginx:指定安装目录为/data/nginx。在编译和安装完成后,软件将被安装到该目录下.
--with-ule:启用 HTTP Stub 模块。该模块是 Nginx 的一个内置模块,用于获取 Nginx 服务器的状态信息。