# Linux编译安装Nginx1.16.1稳定版
前置条件
本文采用centOS 7.8.2003 版本
通过编译的方式安装
如何安装Nginx 1.16.1稳定版
# 一、安装依赖及环境
注意
快捷安装和分步骤安装的目的是一样的
挑选一个方式安装即可
# 快捷安装
代码语言:javascript复制yum install gcc gcc-c pcre pcre-devel zlib zlib-devel openssl openssl-devel -y
# 分步骤安装
- 安装gcc环境
yum install gcc gcc-c
- 安装PCRE库,用于解析正则表达式
yum install -y pcre pcre-devel
- zlib压缩和解压缩依赖
yum install -y zlib zlib-devel
- SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是https
yum install -y openssl openssl-devel
# 二、下载Nginx源码
切换到/usr/local/src目录下,下载源代码解压
代码语言:javascript复制cd /usr/local/src
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar -zxvf nginx-1.16.1.tar.gz
提示
若提示 -bash: wget: 未找到命令
则需要执行下面的命令后
代码语言:javascript复制yum install wget
重新通过 wget
下载,解压
# 三、编译源代码
- 进入解压好的文件夹
cd /usr/local/src/nginx-1.16.1
- 编译源码
- 可执行版:
./configure
--prefix=/usr/local/nginx
--with-http_stub_status_module
--with-http_ssl_module
--with-stream
- 注释版:
./configure
--prefix=/usr/local/nginx # 指定编译文件夹
--with-http_stub_status_module # nginx监控模块
--with-http_ssl_module # nginx ssl模块,可配置证书等
--with-stream # nginx stream模块,配置stream,upstream反向代理必须的模块
- 执行结果:
注意
编译报错的解决办法,没有报错直接跳过
- 报错:./configure: error: the HTTP rewrite module requires the PCRE library. 问题原因:编译安装nginx需要pcre包,未安装的话会报错 解决办法: yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel
- 报错:File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: 问题原因:yum采用python作为命令解释器,原来系统自带的python解释器为python2.7,系统默认的解释器为python3.7 解决办法: vim /usr/bin/yum 修改第一行为:#!/usr/bin/python2.7 vi /usr/libexec/urlgrabber-ext-down 修改第一行为:#!/usr/bin/python2.7
- 报错:File "/bin/yum-config-manager", line 135 except yum.Errors.RepoError, e: 问题原因:yum采用python作为命令解释器,原来系统自带的python解释器为python2.7,系统默认的解释器为python3.7 解决办法: vim /bin/yum-config-manager 修改第一行为:#!/usr/bin/python2.7
- 报错:./configure: error: SSL modules require the OpenSSL library. 问题原因: 缺少SSL库 解决办法:yum -y install openssl openssl-devel
# 四、安装Nginx
- 如果nginx已经安装了的话用指令
make
- 如果没有安装或者已卸载的话
make && make install
# 五、查看nginx的版本信息
- 查看编译后的nginx版本
/usr/local/src/nginx-1.16.1/objs/nginx -V
- 查看安装后的nginx版本
/usr/local/nginx/sbin/nginx -V
# 六、更新nginx,这一步是为装过nginx更新bin文件用的,安装的话忽略
- 复制新版nginx到安装路径处
cp objs/nginx /usr/local/nginx/sbin/
- 复制bin文件后再核对下版本
/usr/local/nginx/sbin/nginx -V
# 七、配置开机自启动
代码语言:javascript复制vim /lib/systemd/system/nginx.service
- 复制以下内容保存(按ESC后
:wq
保存退出)
[Unit]
Description=nginx service
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 quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
- 设置开机自启动
systemctl enable nginx
- 启动nginx
systemctl start nginx
- 通过浏览器访问 http://ip:{ip}:ip:{端口号},例如我的是
http://192.168.4.125/
,默认80端口可以不加端口号
- 启动、查看状态、重启nginx,指令3件套
systemctl start nginx
systemctl status nginx
systemctl restart nginx
# 八、配置nginx环境变量
- 一般修改配置后用 nginx -s reload 重启
nginx -s reload
- 出现以下提示是没有配置环境变量
- 打开
/etc/profile
vim /etc/profile
- 在最后一行 追加下面2行配置(ESC
:wq
保存退出)
PATH=$PATH:/usr/local/nginx/sbin
export PATH
使配置生效后,就可以用 nginx -s reload
source /etc/profile
# 参考文章
CentOS安装nginx-1.16.1
centos 7 源码方式安装nginx(1.16.1) ssl 阿里证书配置