##########CentOS 7 非root下Nginx的安装及配置######
系统与软件信息
操作系统:CentOS Linux release 7.4.1708 (Core)
Nginx Version:1.12.2
假定信息
系统用户名:team
系统用户密码:team
用户主目录:/usr/team
先在root环境下安装依赖
yum -y install pcre-devel gcc zlib-devel openssl-devel lrzsz.x86_64
创建team用户
使用root用户登录linux,使用useradd创建team用户
[root@localhost ~]# useradd -d /usr/team -m team
说明:
-d 指定用户主目录
-m 若主目录不存在,自动创建目录
-g 指定用户组,不写默认创建与用户名同名的用户组
##使用su命令切换到root用户,给其设置密码为team
[root@localhost team]# passwd team
更改用户 team 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost team]#
##使用team使用户创建packages目录,上传的安装包放置在该目录下
[team@localhost ~]$ mkdir packages
##下载nginx-1.12.2,使用team用户上传安装包到 /usr/team/packages 目录下
使用tar命令解压nginx安装包
[team@localhost ~]$ tar -xzf nginx-1.12.2.tar.gz
使用team用户进入nginx-1.12.2目录,执行
[team@localhost nginx-1.12.2]$ ./configure --prefix=/usr/team/nginx-1.12.2
.安装
##为了方便管理和使用,在/usr/team目录下创建nginx-1.12.2目录,把编译好的nginx安装到此目录中。
[team@localhost ~]$ cd /usr/team/
[team@localhost ~]$ mkdir nginx-1.12.2
##nginx源代码的编译需要使用configure脚本自动生成Makefile文件。进入安装包目录,执行configure指定nginx安装目录
[team@localhost ~]$ cd /usr/team/packages/nginx-1.12.2
[team@localhost nginx-1.12.2]$ ./configure --prefix=/usr/team/nginx-1.12.2
说明:
--prefix 指定nginx的安装路径
##在当前/usr/team/packages/nginx-1.12.2目录下执行make编译和make install安装
[team@localhost nginx-1.12.2]$ make
[team@localhost nginx-1.12.2]$ make install
##成功编译安装后,进入/usr/team/nginx-1.12.2/,可看到如下信息
启停控制
##进入主程序目录
[team@localhost sbin]$ cd /usr/team/nginx-1.12.2/sbin
##启动
[team@localhost sbin]$ ./nginx
若出现如下错误信息,原因:Linux只有root用户可以使用1024一下的端口。nginx默认使用80端口,可修改成8080
修改监听端口
[team@localhost conf]$ cd /usr/team/nginx-1.12.2/conf
[team@localhost conf]$ vim nginx.conf
修改完成后重新执行启动命令,通过访问http://192.168.100.20:8080/进行页面访问来验证是否成功
##出现访问不成功,看端口是否被防火墙屏蔽。若是可开放该端口或关闭防火墙,以下是关闭防火墙的命令
sed -ri '/^[^#]*SELINUX=/s#=.+$#=disabled#' /etc/selinux/config
重启防火墙:
systemctl restart firewalld.service
关闭防火墙:
systemctl stop firewalld.service
[root@localhost /]# systemctl start firewalld.service
[root@localhost /]# /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT //可开放该端口
[team@localhost sbin]$ ./nginx -s reload 重启Nginx
注:查看监听(Listen)的端口
netstat -lntp
检查端口被哪个进程占用
netstat -lnp|grep 8080
查看已经开放的端口:
firewall-cmd --list-ports
如要开放80,8080 端口,输入以下命令即可
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT