软件安装
0、 获取源码包
wget https://nginx.org/download/nginx-1.18.0.tar.gz // 下载源码包
wget
是 Linux 中的一个命令行工具,用于从 Web 服务器下载文件。它支持 HTTP、HTTPS 和 FTP 协议,并允许用户通过命令行参数来定制下载过程。wget
是一个非常强大的工具,可以自动处理下载过程中的重定向和镜像站点,以及断点续传等功能。
1、 解压软件包
# 进行后续的源码编译tar -zxf nginx-1.18.0.tar.gz -C /usr/src/
2、 配置编译参数
yum install zlib zlib-devel pcre pcre-devel openssl openssl-devel
//
安装
nginx
软件需要的动态依赖库 简单点就是依赖关系
yum install gcc gcc-c++
// linux
操作平台一般使用开源的
gcc
工具进行编译,完善编译
环境
cd /usr/src/nginx-1.18.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
# 生成编译需要的参数和环境设置 主要保存在Makefile
安装缺失的软件包
yum -y install gcc automake autoconf libtool make
3、 编译
make
// make build
进行编译,按照上一步的
Makefile
完成源码编译 (包括预处理、编译
(生成汇编码)、汇编(机器码)、链接(检查动态链接库是否完整,如果缺少某个动态链接文件,这
一步会报错))
#
结果会生成一个绿色的可执行文件(需要安装的程序可以直接运行,但是缺少一些环境支持,需要在
下一步完善)
4、 安装
make install
#
将编译的程序和其他相关文件复制到在第
2
步指定的目录下面,在
nginx
这个程序
就是需要除了上一步编译程序之外,还需要一些配置文件、
web
程序需要测试文件
5、 安装调试
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/ //
通过
tab
按键自动补齐
nginx
命令
useradd -M -s /sbin/nologin -u 666 nginx //
第二步指定的程序用户创建出来
#
创建一个自己能看懂的测试文件(任意的
h5
)
echo "<h1> Hi! It's me, You have installed nginx web server! Enjoy ~</h1>" >
/usr/local/nginx/html/index.html
#
测试
nginx
的
web
功能
#
通过浏览器访问虚拟机
IP
#
虚拟机较慢的话,可以直接从宿主机的浏览器进行测试访问,注意关闭虚拟机防火墙
ip a s
systemctl stop firewalld.service #关闭防火墙
在属主浏览器输入虚拟机的IP地址进行检测
#
添加到
systemctl
管理
#
因为
systemd
本质上通过名为单元东西管理系统进程,因此只需要为
nginx
添加对应的单元配置文件即可,注意
nginx
属于服务,因此
nginx
单元的后缀为
service
[root@bogon nginx-1.18.0]# cp -p /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/nginx.service
[root@bogon nginx-1.18.0]# vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=NGINX
[Service]
Type=forking
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/bin/killall -9 nginx
KillMode=process
[Install]
WantedBy=multi-user.target
[root@bogon nginx-1.18.0]# systemctl daemon-reload
为了避免和
systemctl
冲突。手动停止自己启动的
nginx
进程
# killall -9 nginx
6、一些善后
#
清理源码编译的临时文件,避免造成太大的存储压力, 编译的临时文件对于系统运行没有任何作用
make clean
#
如果未来需要重新编译的话,就需要从
./configure
开始
查看服务
[root@localhost nginx-1.18.0]# systemctl status nginx.service
[root@localhost nginx-1.18.0]# systemctl start nginx.service
[root@localhost nginx-1.18.0]# systemctl status nginx.service