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 | #cd /usr/local |
4)进入nginx-1.16.0目录,会发现该目录下有一个configure文件,执行该配置文件。
1 | #cd nginx-1.16.0/ |
5)编译并安装nginx。(问题的解决方案在最后)
1 | #make |
6)查找nginx安装目录。
1 | #whereis nginx |
7)进入安装目录。
1 | #cd /usr/local/nginx |
8)由于nginx默认通过80端口访问,而Linux默认情况下不会开发该端口号,因此需要开放linux的80端口供外部访问。
1 | #/sbin/iptables -I INPUT -p tcp –-dport 80 -j ACCEPT |
9)进入/usr/local/nginx/sbin目录,启动nginx。
1 | #cd sbin |
没有任何消息,代表启动成功。此时,便可以通过“公网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 | 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 \ |
原因:是将警告当成了错误处理
解决办法
打开./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 | #make |