1. 简介
在CentOS 8中使用yum安装nginx是一种常见的方法,但是有时候我们需要自定义安装目录,这篇文章将介绍在CentOS 8中使用自定义目录安装nginx的步骤和方法。
2. 准备工作
2.1 下载nginx源码包
第一步是从nginx官方网站(http://nginx.org/)下载源码包。我们可以使用curl命令下载,如下所示:
curl -O https://nginx.org/download/nginx-1.18.0.tar.gz
2.2 安装必要的依赖
在编译和安装nginx之前,我们需要安装一些必要的依赖包,包括pcre-devel、openssl-devel和zlib-devel。以下命令将安装这些依赖包:
yum install -y pcre-devel openssl-devel zlib-devel
3. 安装nginx
3.1 解压源码包
现在我们需要解压nginx源码包。以下是解压命令:
tar -xzf nginx-1.18.0.tar.gz
3.2 配置编译
接下来我们需要为nginx配置编译选项。我们可以使用以下命令进行配置:
cd nginx-1.18.0
./configure --prefix=/usr/local/nginx
在上面的命令中,--prefix选项指定了安装目录。请注意,我们将安装nginx到/usr/local/nginx目录下,而不是系统默认的安装目录。
3.3 编译和安装
现在我们已经为nginx配置了编译选项,接下来我们需要使用make命令来编译nginx。以下是编译和安装命令:
make -j2
make install
在上面的命令中,-j选项指定了使用的CPU核心数。请注意,在这里我们使用了2个CPU核心。根据您的CPU类型和数量,您可以根据需要自由调整此选项。
4. 配置nginx
4.1 编辑配置文件
在安装nginx后,我们需要编辑nginx的配置文件。以下是编辑文件的命令:
vi /usr/local/nginx/conf/nginx.conf
在这个配置文件中,我们可以设置nginx的监听端口、服务器名称、虚拟主机等等。
4.2 设置nginx开机启动
为了在系统启动时自动启动nginx,我们需要创建一个systemd服务。以下是创建服务的命令:
vi /usr/lib/systemd/system/nginx.service
在文件中添加以下内容:
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
然后我们需要重新加载systemd服务并启动nginx:
systemctl daemon-reload
systemctl enable nginx
systemctl start nginx
5. 结论
现在我们已经成功地在CentOS 8中使用自定义目录安装了nginx。通过以下命令,您可以检查nginx是否正在运行:
systemctl status nginx
如果nginx正在运行,您应该会看到一个类似于以下的输出:
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2020-08-10 03:21:47 EDT; 3s ago
Main PID: 28231 (nginx)
Tasks: 2 (limit: 23722)
Memory: 1.1M
CGroup: /system.slice/nginx.service
├─28231 nginx: master process /usr/local/nginx/sbin/nginx
└─28232 nginx: worker process
恭喜您已经成功地在CentOS 8中使用自定义目录安装了nginx!