使用源码安装的情况及优势:
简单来说,如果yum、rpm软件包不能提供所需的软件,就要考虑源代码安装。获取源代码包后,进行编译安装。另外源代码包可以根据用户的需要对软件加以定制,有的还允许二次开发。
一、安装前的准备工作
基于安全考虑,nginx不以root身份运行,而以普通用户和组身份运行。
ps:在使用sudo时出现:redhat (用户) is not in the sudoers file. This incident will be reported4
登入超级用户 然后进入vim /etc/sudoers
找到 root ALL=(ALL)ALL 在下面添加: 用户名 ALL=(ALL)ALL
1. 创建一个名为nginx的组账户
groupadd nginx
2.创建一个属于改组的同名用户,不允许该用户登录和创建主目录
useradd nginx -g nginx -s /sbin/nologin -M
二、依赖库安装
1.安装c++环境
yum -y install gcc gcc-c++ autoconf automake make
2.安装pcre
提供nginx重写功能
yum -y install pcre pcre-devel
3.安装zlib
zlib 库提供了很多压缩和解压缩的方式,nginx 使用 zlib 对 http 包内容进行 gzip 压缩
yum -y install zlib zlib-devel make libtool
4.安装openssl
安全套接字层密码库,用于通信加密
yum -y install openssl openssl-devel
三、nginx安装
除了Apache,Linux 系统中还常常使用另一款Web服务器软件nginx,它最显著的特点是对连接高并发业务提供很好的支持。
最新版本的nginx 是以源代码形式发布的,可以到其官网htp:/nginx.org/download/上下载 Linux版本相应的源代码包,有tar.gz和zip两种格式,这里下载tar.gz格式的源代码包,文件以nginx-version.tar.gz命名,version代表版本号,例中版本为1.20.2
1.上传下载好的安装包(nginx-1.20.1.tar.gz)
青色向上箭头传输,这里是远程连接使用的MobaXterm
ls查看
2.解压
tar -zxvf nginx-1.20.2.tar.gz
3.编译目录
cd nginx-1.20.2
4.检查平台安装环境
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --user=nginx --group=nginx
参数说明: –prefix=/usr/local/nginx
#编译安装目录 –user=nginx
#所属用户nginx –group=nginx
#所属组nginx –with-http_stub_status_module
#该模块提供nginx的基本状态信息 –with-http_ssl_module
# 支持HTTPS
5.执行make命令编译源代码
make会依据Makefile文件中的设置对源代码进行编译并生成可执行的二进制文件。编
译工作主要是运行gcc将源代码编译成为可以执行的目标文件,但是这些目标文件通常还需
要连接一些函数库才能产生一个完整的可执行文件。使用make就是要将源代码编译成为可更多的时间为执行文件,放置在目前所在的目录之下,此时还没有安装到指定目录中。
make
6.执行make install安装软件
make只是生成可执行文件,要将可执行文件安装到系统中,还需执行make install 命令。通常这是最后的安装步骤,make根据Makefile 文件中关于install目标的设置 上一步骤所编译完成的二进制文件、库和配置文件等安装到预定的目录中。
make install
至此完成nginx的源码编译安装完成!!
四、测试nginx
1.关闭防火墙,查看防火墙状态
systemctl status firewalld
状态为actving,关闭防火墙
systemctl stop firewalld
2.启动服务
注意不要退出编译目录:nginx-1.20.2
/usr/local/nginx/sbin/nginx
(1). 启动后查看nginx情况
ps -ef | grep nginx
(2). 查看nginx的版本号
/usr/local/nginx/sbin/nginx -V
3.访问nginx
在浏览器输入网址(此虚拟机系统ip)访问
五、编写systemd单元文件管理nginx服务
1.编写单元文件
编写一个单元文件,以便systemd能够管理nginx服务
在/usr/lib/systemd/system或/etc/systemd/system目录下,创建一个nginx.service文本文件。
内容如下:
[Unit]
Description=nginx - high performance web server Documentation=http://nginx.org/en/docs/ After=network.target remote-fs.target nss-1ookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill-s QUIT $MAINPID Private Tmp=true
[Install]
WantedBy=multi-user.target
2.systemd重新识别此单元文件
通常执行命令:
systemctl daemon-reload
3.设置启动、重启、随机启动
这样就可以使用systemd来管理nginx启动、重启、随机启动等,指令如下: