linux 下如何安装nginx

1)下载nginx安装包

1
#wget -c https://nginx.org/download/nginx-1.16.0.tar.gz

2)解压到/usr/local目录

1
#tar -xvf nginx-1.16.0.tar.gz -C /usr/local

此时压缩包已经解压完成,可以在当前目录将压缩包删除

1
rm nginx-1.16.0.tar.gz

3)进入/usr/local目录,确认nginx解压到该目录下

1
2
#cd /usr/local
#ls

4)进入nginx-1.16.0目录,会发现该目录下有一个configure文件,执行该配置文件。

1
2
3
#cd nginx-1.16.0/
#ls
#./configure

5)编译并安装nginx。(问题的解决方案在最后)

1
2
#make
#make install

6)查找nginx安装目录。

1
#whereis nginx

7)进入安装目录。

1
2
#cd /usr/local/nginx
#ls

8)由于nginx默认通过80端口访问,而Linux默认情况下不会开发该端口号,因此需要开放linux的80端口供外部访问。

1
#/sbin/iptables -I INPUT -p tcp –-dport 80 -j ACCEPT

9)进入/usr/local/nginx/sbin目录,启动nginx。

1
2
#cd sbin
#./nginx

没有任何消息,代表启动成功。此时,便可以通过“公网IP+端口”的方式访问 http://xx.xx.xxx.xxx:80/ 进入nginx欢迎页面了。
注:可以使用./nginx -s stop命令停止服务,使用的时候要按照9)开启nginx

可能遇到的问题

1)安装nginx时出现In function‘ngx_murmur_hash2’ ‘ngx_murmurhash.o failed’等错误,如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
URCE=2 -I src/core -I src/event -I src/event/modules -I src/os/unix -I /home/always/tools/nginx-rtmp-module -I /usr/include/libxml2 -I objs \
-o objs/src/core/ngx_murmurhash.o \
src/core/ngx_murmurhash.c
src/core/ngx_murmurhash.c: In function ‘ngx_murmur_hash2’:
src/core/ngx_murmurhash.c:37:11: error: this statement may fall through [-Werror=implicit-fallthrough=]
h ^= data[2] << 16;
~~^~~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:38:5: note: here
case 2:
^~~~
src/core/ngx_murmurhash.c:39:11: error: this statement may fall through [-Werror=implicit-fallthrough=]
h ^= data[1] << 8;
~~^~~~~~~~~~~~~~~
src/core/ngx_murmurhash.c:40:5: note: here
case 1:
^~~~
cc1: all warnings being treated as errors
objs/Makefile:659: recipe for target 'objs/src/core/ngx_murmurhash.o' failed
make[1]: *** [objs/src/core/ngx_murmurhash.o] Error 1
make[1]: Leaving directory '/home/always/tools/nginx-1.10.3'
Makefile:8: recipe for target 'build' failed
make: *** [build] Error 2

原因:是将警告当成了错误处理

解决办法

打开./objs/Makefile,

1
#nano ./objs/Makefile

CFLAGS = -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g (去掉-Werror)

ctrl + S保存 Ctrl + X退出nano回到终端
再重新make

-Wall 表示打开gcc的所有警告
-Werror,它要求gcc将所有的警告当成错误进行处理


2)安装nginx报错“src/os/unix/ngx_user.c:26:7: error: ‘struct crypt_data’ has no member named ‘current_salt’”

解决办法

打开报错的位置文件,我的位置是/usr/local/nginx-1.16.0/src/os/unix
版本号不一样,注意自己的版本和错误位置,正常安装就是我下面的位置

1
#nano /usr/local/nginx-1.16.0/src/os/unix/ngx_user.c

直接将current_salt相关的信息给注释掉

ctrl + S保存 Ctrl + X退出nano回到终端
注意:要回到正确的位置,以防出错可以直接执行以下命令

1
#cd /usr/local/nginx-1.16.0

再重新make make install

1
2
#make
#make install
点击查看
-------------------本文结束 感谢您的阅读-------------------
0%