openEuler离线安装nginx(理论上其它操作系统也可以)

服务器命令自查

  首先第一趴需要检查你的服务器是openEuler什么版本,是啥架构,那些rpm包没有安装

  查看服务器系统版本(我的是openEuler22.03版本)

[root@VM-0-3-linux ~]# cat /etc/os-release 
NAME="openEuler"
VERSION="22.03 (LTS-SP1)"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 (LTS-SP1)"
ANSI_COLOR="0;31"

  查看服务器架构,一般都是x86,这里注意下如果是arm架构在vmWare(本地运行镜像模拟linux)是不能运行的

[root@VM-0-3-linux ~]# arch
x86_64
[root@VM-0-3-linux ~]# 

nginx安装一般是需要 gcc、pcre、pcre-devel、zlib、nginx

gcc安装(必选)

备注说明: gcc用来对nginx源码进行编译

[root@VM-0-3-linux ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/10.3.1/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,fortran,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl --without-cloog --enable-gnu-indirect-function --build=x86_64-linux-gnu --with-stage1-ldflags=' -Wl,-z,relro,-z,now' --with-boot-ldflags=' -Wl,-z,relro,-z,now' --disable-bootstrap --with-tune=generic --with-arch_32=x86-64 --disable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.3.1 (GCC)
[root@VM-0-3-linux ~]#

可以看到gcc版本在最下方 10.3.1

那如果gcc没有怎么办如下命令执行结果

[root@iZuf63rpbv7l8ahkbslwi6Z ~]# gcc -v
-bash: gcc: command not found

 

那可能有些人就在想了,我的服务器是内网没法连外网,不然直接yum就安装了

yum install gcc-c++

直接在外网找一台服务器,操作系统架构跟内网差不多的在外网下载包直接传到内网进行安装

 

现在是在外网服务器操作

切换目录到 cd /opt/nginx, 如果opt下没有nginx目录就新建 mkdir nginx

[root@iZuf63rpbv7l8ahkbslwi6Z nginx]# pwd
/opt/nginx

再切换到gcc目录

/opt/nginx/gcc

执行rpm下载命令,这个命令不同与yum install gcc-c++带安装的

yumdownloader --resolve gcc-c++

这将下载 gcc-c++ 及其依赖库的 RPM 包(下载其它的依赖也是类似yumdownloader --resolve pcre)

[root@VM-0-3-linux gcc]# yumdownloader --resolve gcc-c++
Last metadata expiration check: 0:11:51 ago on Thu 04 Jan 2024 08:53:49 AM UTC.
gcc-c++-10.3.1-25.oe2203sp1.x86_64.rpm 16 MB/s | 11 MB 00:00
[root@VM-0-3-linux gcc]# ls
gcc-c++-10.3.1-25.oe2203sp1.x86_64.rpm

这里就下载了一个rpm,因为我之前安装过,如果是原始机可能会下载挺多rpm包

gcc的rpm安装(这个内网一般是可以执行rpm的安装命令的,不需要联网)

rpm -Uvh *.rpm --nodeps --force;

这个rpm命令执行为强制执行,表示执行当前文件夹所有的rpm包,如果原先装过它会先删除之前的再安装现在的rpm包,谨慎操作,我有一次没注意服务器是否安装了gcc,执行了低版本gcc进去后面服务器登的登不进去了,破坏了里面的一些系统文件

rpm -ivh *.rpm --nodeps;

不强制安装也会给出提示为啥安装失败,如果装过相同的rpm包就不会再次安装了

按照上面命令装好之后再执行gcc -v就会出来了

gcc装好基本成功一大半了

pcre安装(必选)

rpm -qa pcre 这个命令可以判断大部分插件是否安装,如果没装会是空的
[root@VM-0-3-linux /]# rpm -qa pcre
pcre-8.45-5.oe2203sp1.x86_64

如果空的也别急,一般pcre是用安装包(外网下载的)进行安装的
pcre-8.35.tar.gz
进行解压命令
[root@VM-0-3-linux nginx]# tar -zxvf pcre-8.35.tar.gz

然后解压之后的安装命令跟rpm是不同的,进入解压后的目录

[root@VM-0-3-linux pcre-8.35]# pwd
/opt/nginx/pcre-8.35

执行

./configure; make; make install;

那如果你没有安装包那你还是老老实实跟上面gcc下载rpm包一样先下载下来然后进行rpm安装

 pcre-devel安装(必选)

备注说明: Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。
     这里需要安装两个安装包pcre和pcre-devel。
     第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码。
安装步骤就不重复了

[root@VM-0-3-linux pcre-8.35]# rpm -qa pcre-devel
pcre-devel-8.45-5.oe2203sp1.x86_64
[root@VM-0-3-linux pcre-8.35]#

没有就找安装包安装,执行命令根据安装包或rpm的对应进行安装

zlib安装(必选)

备注说明: zlib库提供了开发人员的压缩算法,在Nginx的各种模块中需要使用gzip压缩
[root@VM-0-3-linux pcre-8.35]# rpm -qa zlib
-bash: pm: command not found
[root@VM-0-3-linux pcre-8.35]# 
这里就可以看到我没有安装这个zlib插件
还是按照上述装法进行安装

openssl安装(必选)

备注说明:nginx不仅支持 http协议,还支持 https(即在 ssl 协议上传输 http)。
   如果使用了 https,需要安装 OpenSSL 库
目前安装过的一些centOs、redHat、openEuler内网操作系统基本自带的openssl、openssl-devel, 或者命令下载gcc-c++时也会顺带下来openssl的rpm包
如果没有那么参照gcc中rpm下载传到内网进行安装即可

 

nginx安装(必选)

这个一般是用安装包进行安装,注意踩坑,服务器版本越高对应的nginx版本越高,之前有遇到过在一个服务器安装nginx死活安装不上去,后面换了高一点版本的nginx就可以了
先将nginx1.18解压
tar -zxvf nginx-1.18.0.tar.gz
解压后进入解压目录执行
./configure; make; make install;

安装可能不会一帆风顺, 我遇到过安装报错,报缺失zlib, pcre-devel的包的那么对应上述方法安装即可
安装成功后会在/usr/local/nginx目录显示
到这一步基本就成功了

 

  

posted @ 2024-01-04 16:39  马革皮  阅读(456)  评论(0编辑  收藏  举报