目录
一、下载nginx源码
二、依赖环境准备
三、编译安装
四、加入系统服务
Nginx安装方式有多种,本篇介绍源码复杂安装,目的是进一步了解Nginx
一、下载nginx源码
官网下载最新稳定版:nginx: download
二、依赖环境准备
安装所有依赖环境
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
环境解释
以上所安装的依赖环境作用解释请查看:【Nginx系列】- 源码安装依赖环境解释说明
三、编译安装
源码包准备
上传并解压官网下载的nginx源码包,进入到源码编译目录下
[root@001 nginx-s]# ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
配置参数
./configure --prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--modules-path=/usr/local/nginx/modules \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--lock-path=/usr/local/nginx/logs/nginx.lock
参数说明
--prefix=PATH
指向Nginx的安装目录,默认值为/usr/local/nginx
--sbin-path=PATH
指向(执行)程序文件(nginx)的路径,默认值为<prefix>/sbin/nginx
--modules-path=PATH
指向Nginx动态模块安装目录,默认值为<prefix>/modules
--conf-path=PATH
指向配置文件(nginx.conf)的路径,默认值为<prefix>/conf/nginx.conf
--error-log-path=PATH
指向错误日志文件的路径,默认值为<prefix>/logs/error.log
--http-log-path=PATH
指向访问日志文件的路径,默认值为<prefix>/logs/access.log
--pid-path=PATH
指向Nginx启动后进行ID的文件路径,默认值为<prefix>/logs/nginx.pid
--lock-path=PATH
指向Nginx锁文件的存放路径,默认值为<prefix>/logs/nginx.lock
开始编译安装
make && make install
四、加入系统服务
源码编译安装的nginx需要在安装目录下启动太麻烦,使用systemctl控制更方便
新建如下文件
sudo vim /lib/systemd/system/nginx.service
写入以下内容
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
【注】:如果nginx处于启动状态,请先停止
./nginx -s stop
重新加载systemctl服务
systemctl daemon-reload
启动nginx并查看状态,成功
[root@001 sbin]# systemctl start nginx
[root@001 sbin]# systemctl status nginx
● nginx.service - nginx
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2022-06-22 06:14:17 CST; 2s ago
Process: 5015 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS)
Main PID: 5016 (nginx)
CGroup: /system.slice/nginx.service
├─5016 nginx: master process /usr/local/nginx/sbin/nginx
└─5017 nginx: worker process
Jun 22 06:14:17 001 systemd[1]: Starting nginx...
Jun 22 06:14:17 001 systemd[1]: Started nginx.
[root@001 sbin]#
以上内容就是Nginx复杂源码安装过程,欢迎讨论学习!