nginx+mysql8+php8+rhel7.6建站(20220111)
1、Nginx安装配置
1.1 安装前工作
首先更新系统软件源,使用以下命令更新系统 -
[root@swordman ~]# yum update
有关两个命令的一点解释:
yum -y update
- 升级所有包,改变软件设置和系统设置,系统版本内核都升级
yum -y upgrade
- 升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变
依赖包安装
[root@swordman src]# yum -y install gcc gcc-c++ autoconf automake libtool make cmake
[root@swordman src]# yum -y install zlib zlib-devel openssl openssl-devel pcre-devel
1.2. 下载Nginx安装源文件
源码下载,可官网下载地址:http://nginx.org/en/download.html 下载并上传到服务器(这里选择最新稳定版本:nginx-1.20.2
),如下图所示
或直接在服务上执行以下命令下载
[root@swordman ~]# cd /usr/local/src
[root@swordman src]# wget -c http://nginx.org/download/nginx-1.20.2.tar.gz
解压上面下载的文件
[root@swordman src]# tar zxvf nginx-1.20.2.tar.gz
在编译之前还要做一些前期的准备工作,如:依懒包安装,Nginx用户和用户组等。
1.3. 新建nginx用户及用户组
使用 root 用户身份登录系统,执行以下命令创建新的用户。
[root@swordman src]# groupadd nginx
[root@swordman src]# useradd -g nginx -M nginx
useradd
命令的-M
参数用于不为nginx
建立home
目录
修改/etc/passwd
,使得nginx
用户无法bash登陆(nginx用户后面由/bin/bash
改为/sbin/nologin
),
[root@swordman src]# vi /etc/passwd
然后找到有 nginx 那一行,把它修改为(后面由/bin/bash
改为/sbin/nologin
):
nginx:x:1002:1003::/home/nginx:/sbin/nologin
1.4. 编译配置、编译、安装
下面我们进入解压的nginx源码目录:/usr/local/src/
执行以下命令 -
[root@swordman ~]# cd /usr/local/src/nginx*
[root@swordman nginx-1.20.2]# pwd
/usr/local/src/nginx-1.20.2
[root@swordman nginx-1.20.2]#
[root@swordman nginx-1.20.2]# ./configure --prefix=/usr/local/nginx \
--pid-path=/usr/local/nginx/run/nginx.pid \
--with-http_ssl_module \
--user=nginx \
--group=nginx \
--with-pcre \
--without-mail_pop3_module \
--without-mail_imap_module \
--without-mail_smtp_module
注意:上面的反斜杠
\
表示换行继续。
--prefix=/usr/local/nginx
指定安装到 /usr/local/nginx
目录下。
上面配置完成后,接下来执行编译 -
[root@swordman nginx-1.20.2]# make
[root@swordman nginx-1.20.2]# make install
... ...
cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf.default'
test -d '/usr/local/nginx/run' \
|| mkdir -p '/usr/local/nginx/run'
test -d '/usr/local/nginx/logs' \
|| mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/html' \
|| cp -R html '/usr/local/nginx'
test -d '/usr/local/nginx/logs' \
|| mkdir -p '/usr/local/nginx/logs'
make[1]: Leaving directory `/usr/local/src/nginx-1.20.2'
[root@swordman nginx-1.20.2]#
Shell
上面编译时间跟你的电脑配置相关,所以可能需要一些等待时间。
查看安装后的程序版本:
[root@swordman nginx-1.20.2]# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.20.2
修改Nginx默认端口(可选):
[root@swordman nginx-1.20.2]# vi /usr/local/nginx/conf/nginx.conf
找到 -
... ...
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
... ...
把上面的 80
修改为你想要的端口,如:8080
。
修改配置后验证配置是否合法:
[root@swordman nginx-1.20.2]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
启动Nginx程序、查看进程 -
[root@swordman nginx-1.20.2]# /usr/local/nginx/sbin/nginx
[root@swordman nginx-1.20.2]# ps -ef | grep nginx
root 21348 24564 0 06:40 pts/0 00:00:00 grep --color=auto nginx
root 30901 1 0 Jan05 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx 30902 30901 0 Jan05 ? 00:00:00 nginx: worker process
nginx停止、重启
未添加nginx服务前对nginx的管理只能通过一下方式管理:
# nginx 管理的几种方式 -
# 启动Nginx
/usr/local/nginx/sbin/nginx
# 从容停止Nginx:
kill -QUIT 主进程号 # 如上一步中的 ps 命令输出的 29151,就是 Nginx的主进程号
# 快速停止Nginx:
kill -TERM 主进程号
# 强制停止Nginx:
pkill -9 nginx
# 平滑重