简介

在这篇文章中,我介绍了如何在centos7平台上使用包管理和源码的方式安装nginx

感谢

Photo by David Hablützel

https://www.pexels.com/photo/yellow-and-black-bee-in-macro-photography-1036269/

包管理器安装

在centos7中使用如下命令

1
yum install -y nginx

我使用服务器自带的源没有这个包,换成阿里的可以了

一般包管理器安装不会被使用,因为这种方法安装的nginx没有源码,想要增加一些新的模块很困难,绝大部分都是自己编译源码

源码安装

这是绝大部分人使用的情况

下载源码

http://nginx.org/en/download.html

得到文件 nginx-1.22.1.tar.gz

解压得到如下文件

1
2
[root@vital-text-1.localdomain:86:nginx-1.22.1]# ls
CHANGES CHANGES.ru LICENSE Makefile README auto/ conf/ configure* contrib/ html/ man/ objs/ src/

config

运行config就可以了,一般安装在

1
./configure --prefix=/usr/local/nginx

但是,需要很多的依赖

我这里,首先会报错没有c编译器

1
2
3
4
5
6
[root@vital-text-1.localdomain:85:nginx-1.22.1]# ./configure 
checking for OS
+ Linux 4.10.4-1.el7.elrepo.x86_64 x86_64
checking for C compiler ... not found

./configure: error: C compiler cc is not found

安装gcc

1
yum install -y gcc

依此类推,安装依赖

1
./configure: error: the HTTP rewrite module requires the PCRE library.

安装PCRE

1
yum install -y pcre pcre-devel

报错

1
./configure: error: the HTTP gzip module requires the zlib library.

安装gzip

1
yum install -y zlib zlib-devels

没有报错,成功安装

1
./configure --prefix=/usr/local/nginx

安装

接下来make,make最后几行的输出如下

1
2
3
4
5
6
7
8
9
10
11
objs/src/http/modules/ngx_http_upstream_keepalive_module.o \
objs/src/http/modules/ngx_http_upstream_zone_module.o \
objs/ngx_modules.o \
-ldl -lpthread -lcrypt -lpcre -lz \
-Wl,-E
sed -e "s|%%PREFIX%%|/usr/local/nginx|" \
-e "s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|" \
-e "s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|" \
-e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|" \
< man/nginx.8 > objs/nginx.8
make[1]: Leaving directory `/root/nginx-1.22.1'

执行make install,安装成功

文件结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@vital-text-1.localdomain:104:nginx]# tree
.
|-- conf
| |-- fastcgi.conf
| |-- fastcgi.conf.default
| |-- fastcgi_params
| |-- fastcgi_params.default
| |-- koi-utf
| |-- koi-win
| |-- mime.types
| |-- mime.types.default
| |-- nginx.conf
| |-- nginx.conf.default
| |-- scgi_params
| |-- scgi_params.default
| |-- uwsgi_params
| |-- uwsgi_params.default
| `-- win-utf
|-- html
| |-- 50x.html
| `-- index.html
|-- logs
`-- sbin
`-- nginx

4 directories, 18 files