服务器安装nginx

第二篇文章,安装nginx

服务器安装nginx

之前使用阿里云的时候,是默认安装的,这次切换腾讯云发现已经安装好,所以如果你的服务器上已经安装,则忽略。

安装必备插件

首先得判断服务器上是否安装了gcc , openssl,pcre ,pcre-devel等库。
使用命令

gcc -v  #查看服务器gcc版本
openssl version  #查看openssl的版本
rpm -qa |grep pcre  #查看系统中是否安装了pcre

如果没有安装这些插件,那么使用如下命令安装插件

#gcc是linux下的编译器
yum -y install gcc 
#pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。
yum install -y pcre pcre-devel 
#zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip
yum install -y zlib zlib-devel
#openssl是web安全通信的基石,没有openssl,可以说我们的信息都是在裸奔
yum install -y openssl openssl-devel

安装nginx

查看服务器上openssl的版本

使用命令

openssl version 

因为openssl的版本和nginx的版本可能又不兼容的问题,或导致后来,nginx配置ssl证书的时候,编译报错。
我的openssl的版本是

OpenSSL 1.1.1g FIPS  21 Apr 2020

google了一下,应该安装nginx-1-17-9的版本

nginx的安装位置和编译/下载位置

我的服务器上根目录下有个develop文件夹,专门用来下载,编译相关的文件,但是linux安装的位置并不是这个位置。需要注意这点。

我的linux服务器中nginx的下载,编译位置是/develop
安装位置,系统默认/usr/local/nginx
如果你看完这篇文章后,觉得不方便,可以直接在/usr/local这个目录下新建nginx文件夹,然后直接操作

切换下载目录,下载nginx安装包并解压

cd /develop
wget http://nginx.org/download/nginx-1.17.9.tar.gz
tar -zxvf nginx-1.9.9.tar.gz

你可以看到下图中我的服务器上有两个nginx,其中nginx-1.9.9这个版本和openssl不兼容,所以重新下载新的。
在这里插入图片描述

编译nginx

首先我的nginx在服务器上的位置是 /develop/nginx-1.17.9
切换到这个目录下,开始执行下面的命令,进行编译
总共三条命令,有可能会有报错,那么报错和解决方案如下

第一条命令

--prefix=/usr/local/nginx --with-http_ssl_module --with-pcre  
#运行后能看到下面第一张图和第二张图,代表这条命令执行成功
#如果报错 nginx error: the HTTP rewrite module requires the PCRE library
#那么文章最上面的插件,你没有安装,直接yum -y install pcre-devel 即可

在这里插入图片描述
在这里插入图片描述

第二条命令

make
#执行后,有可能报错
#src/core/ngx_murmurhash.c:37:11: 错误:this statement may fall through [-Werror=implicit-fallthrough=]
#错误如同下图,这个问题是将警告当成错误处理了
#解决方案
#找到nginx目录下的的objs目录。打开Makefile文件。去掉CFLAGS中的-Werror
#再重新make
# -Wall 表示打开gcc的所有警告
# -Werror,它要求gcc将所有的警告当成错误进行处理

make报错
make可能报错错误

cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_murmurhash.o \
	src/core/ngx_murmurhash.c
src/core/ngx_murmurhash.c: 在函数‘ngx_murmur_hash2’中:
src/core/ngx_murmurhash.c:37:11: 错误:this statement may fall through [-Werror=implicit-fallthrough=]
         h ^= data[2] << 16;
         ~~^~~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:38:5: 附注:here
     case 2:
     ^~~~
src/core/ngx_murmurhash.c:39:11: 错误:this statement may fall through [-Werror=implicit-fallthrough=]
         h ^= data[1] << 8;
         ~~^~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:40:5: 附注:here
     case 1:
     ^~~~
cc1:所有的警告都被当作是错误
make[1]: *** [objs/Makefile:445:objs/src/core/ngx_murmurhash.o] 错误 1
make[1]: 离开目录“/develop/nginx-1.9.9”
make: *** [Makefile:8:build] 错误 2

解决make的错误

vi Makefile   #删除下图中的配置,保存即可

在这里插入图片描述
回到nginx的目录下,重新make,又出现一个新的错误,直接找到这个报错的文件,然后注释这行代码

src/os/unix/ngx_user.c: 在函数‘ngx_libc_crypt’中:
src/os/unix/ngx_user.c:36:7: 错误:‘struct crypt_data’没有名为‘current_salt’的成员
     cd.current_salt[0] = ~salt[0];
pwd
# /develop/nginx-1.9.9/src/os/unix
vi ngx_user.c
#注释报错的这行代码,注释代码使用的是/*  */来注释
重新回到nginx目录,编译make,看到第二张图即可

在这里插入图片描述
在这里插入图片描述
第三条命令

make install 

在这里插入图片描述

添加nginx环境变量

最好将nginx配置到环境变量中,不然接下来,配置ssl证书的时候,
需要重启nginx,会报错:-bash: nginx: 未找到命令

修改/etc/profile

添加如下配置
# nginx exvironmenet
export PATH=$PATH:/usr/local/nginx/sbin

重新读取配置

source /etc/profile

主要nginx的命令如下

/usr/local/nginx/sbin/nginx   启动
/usr/local/nginx/sbin/nginx -s stop  停止
/usr/local/nginx/sbin/nginx -s reload  重新载入
/usr/local/nginx/sbin/nginx -v  查看版本
/usr/local/nginx/sbin/nginx -t  测试配置文件是否正常

修改nginx配置,主要是端口

#注意这一步,使用命令 whereis nginx,看nginx被安装到那个目录下了 
#结果是/usr/local/nginx ,和下载,编译程序的目录不是同一个目录
#找到 nginx目录下的conf文件夹下的nginx.conf文件
默认的http,不需要修改这个配置文件,只需要保证你的腾讯云服务器中的安全组,打开了相应端口,如下
443 是ssl端口,用于https协议

我在这里http的端口是81
在这里插入图片描述

启动nginx

#还在这个目录下 /usr/local/nginx/sbin,开始启动nginx
nginx

直接访问你的IP,看到像下面这个网页即可
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值