因为我是在家用NAS服务器使用虚拟机来安装的Linux,所以选用的CentOS版本不是最新的,而且是最基础版,也就是最小化安装的那款:CentOS7.4 Minimal。而Nginx选用了当前的最新版本:1.21.6。
首先将安装包“nginx-1.21.6.tar.gz”下载至Linux服务器上,然后使用如下命令解压缩:
1
|
tar -zxvf nginx-1.21.6.tar.gz
|
然后进入解压好的“nginx-1.21.6”目录下:
1
2
3
|
cd nginx-1.21.6
# 执行configure脚本
./configure
|
执行./configure
时可能会报如下错误:
1
2
3
4
5
6
|
[hongmao@localhost nginx-1.21.6]$ ./configure
checking for OS
+ Linux 3.10.0-693.el7.x86_64 x86_64
checking for C compiler ... not found
./configure: error: C compiler cc is not found
|
这个是由于我的操作信息是最小化安装版(“Minimal”)的,本身并未自带C语言编译器,所以有需要的话我们此处可手动安装一个:
1
|
sudo yum install -y gcc
|
然后,再次执行./configure
,此时不会再报上述错误,但可能会遇到如下新的问题:
1
2
3
4
|
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
|
缺少pcre模块,那就安装一下:
1
|
sudo yum install -y pcre-devel
|
然后,再次执行./configure
,此时还可能会遇到新的问题:
1
2
3
4
|
./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.
|
缺少zlib模块,同理,也安装一下:
1
|
sudo yum install -y zlib zlib-devel
|
然后,再次执行./configure
,此时理论上就可以安装成功了。
接下来执行:
1
2
3
|
make
# 然后再执行make install,注意这个命令需要权限较高,需使用sudo
sudo make install
|
如此,Nginx便安装完成了,默认安装至/usr/local/nginx/
目录下。进入该目录下:
1
2
3
4
|
cd /usr/local/nginx
# 执行ls
[hongmao@localhost nginx]$ ls
conf html logs sbin
|
在sbin
目录下有nginx
脚本,使用该脚本启动、重启、关闭Nginx。我们进入该目录下:
1
2
3
|
cd /usr/local/nginx/sbin
# 启动Nginx
sudo ./nginx
|
此时访问我们虚拟机的IP,会发现可能无法访问成功,原因可能是:默认的防火墙开着的,因为是本地虚拟机,防不防火墙的无所谓,我们可以将其关闭:
1
2
3
4
5
|
# 关闭防火墙
systemctl stop firewalld.service
# 如果关闭防火墙后,发现页面可以正常访问了,说明就是防火墙导致的之前访问不通
# 所以,我们还可以使用如下命令设置防火墙在系统重启时不自动开启
systemctl disable firewalld.service
|
其他常用命令:
1
2
3
4
5
6
|
# 不停机重新加载配置文件
./nginx -s reload
# 暴力退出
./nginx -s stop
# 优雅退出
./nginx -s quit
|