Centos8下安装nginx
在最近的实训实验中需要在centos8下安装nginx,在安装过程中遇到了很多问题,在此对我的安装过程做一个分享;
准备工作
Vmware(安装了centos8),虚拟机可以上网
开始安装
安装依赖包,使用yum工具安装
yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel
- 1
首先我们需要添加一个名位“www”的用户(名称自定义,在此篇文章内我使用的时www)
useradd www
- 1
然后对www设置密码
passwd www
- 1
然后我们需要给予www用户sudo的权限,用户的sudo权限的文件保存在/etc/sudoers里面,使用vim或者vi打开这个文件;
注意:这里需要root用户或具有root权限的用户才能操作这个文件,因此在操作这个文件的时候需要保证自己是root用户,可以使用whoami命令查看自己的身份,如果自己不是root用户需要使用su命令切换到root用户;
vim /etc/sudoers
- 1
打开这个文件之后样子
大概在这个位置给www用户权限;添加这句:www ALL=(ALL) ALL;强制保存并退出:wq!
然后切换到www用户的家目录
cd /home/www
- 1
准备工作做完了,现在开始下载nginx源包,使用wget工具下载
wget http://nginx.org/download/nginx-1.6.3.tar.gz
- 1
如果执行这一步的时候出现了,命令不存在之类的错误信息,可能是因为wget工具未安装,需要使用yum工具安装一下wget工具
yum -y install wget
- 1
安装成功后在执行下载命令;
此时www的家目录中会有一个名为nginx-1.6.3.tar.gz的压缩文件
切换到www用户并解压这个文件
su - www
tar -xvf nginx-1.6.3.tar.gz
- 1
- 2
解压之后会有一个名为nginx-1.6.3的目录文件;
我们更改一下nginx-1.6.3及其子文件的属主和属组
chown -R www:www nginx-1.6.3
- 1
更改成功之后进入这个文件
cd nginx-1.6.3
- 1
执行配置命令
./configure
- 1
接下来编译文件,编译成功后,可以看到一个Makefile文件
make
- 1
一般在这里会出现问题,下面给出问题截图和解决方法
1、
问题原因:不知道
解决方法:进入到nginx-1.6.3目录下(解压的目录)
找到当前目录下找到objs文件夹,并进入,打开文件Makefile,
vim objs/Makefile
- 1
找到有一下内容的这行:(就在前几行)
CFLAGS = -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g
- 1
-Werror: gcc将所有的警告当成错误进行处理把这行内容中的 “-Werror”去掉
2、
错误原因:不知道
解决方法:编辑这个文件
vim /home/www/nginx-1.6.3/src/os/unix/ngx_user.c
- 1
把这一行注释掉(35行左右)
重新执行编译命令,一般不会出问题了
make
- 1
执行编译安装
执行编译安装,即也就是将编译的文件,拷贝到指定的目录。(把/nginx-1.4.4目录下的文件拷贝到/usr/local/nginx/)。
因为需要在其它文件夹下创建文件夹,所以直接编写安装会报错,所以需要采用sudo方式安装。
sudo make install
- 1
启动nginx服务器,启动命令需要使用sudo完成。
sudo /usr/local/nginx/sbin/nginx
- 1
测试nginx服务器是否可用
访问服务器地址的80端口,确定是否能打开"welcome"页面。发现此时无法访问到欢迎界面(本机除外),原因是centos本地防火墙对外未打开80端口,需要在本地防火墙中将该端口打开。使用以下命令。
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
- 1
- 2
此时再访问centos的80端口,就可查看到欢迎界面了。
最后给一张成功的截图