# Linux编译安装Nginx1.16.1稳定版 {#linux编译安装nginx1-16-1稳定版}
前置条件
本文采用centOS 7.8.2003 版本
通过编译的方式安装
如何安装Nginx 1.16.1稳定版
# 一、安装依赖及环境 {#一、安装依赖及环境}
注意
快捷安装和分步骤安装的目的是一样的
挑选一个方式安装即可
# 快捷安装 {#快捷安装}
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源码 {#二、下载nginx源码}
切换到/usr/local/src目录下,下载源代码解压
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: 未找到命令
则需要执行下面的命令后
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}
-
如果nginx已经安装了的话用指令
make
-
如果没有安装或者已卸载的话
make && make install
# 五、查看nginx的版本信息 {#五、查看nginx的版本信息}
-
查看编译后的nginx版本
/usr/local/src/nginx-1.16.1/objs/nginx -V
-
查看安装后的nginx版本
/usr/local/nginx/sbin/nginx -V
# 六、更新nginx,这一步是为装过nginx更新bin文件用的,安装的话忽略 {#六、更新nginx,这一步是为装过nginx更新bin文件用的,安装的话忽略}
-
复制新版nginx到安装路径处
cp objs/nginx /usr/local/nginx/sbin/
-
复制bin文件后再核对下版本
/usr/local/nginx/sbin/nginx -V
# 七、配置开机自启动 {#七、配置开机自启动}
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:{端口号},例如我的是
http://192.168.4.125/
,默认80端口可以不加端口号 -
启动、查看状态、重启nginx,指令3件套
systemctl start nginx systemctl status nginx systemctl restart nginx
# 八、配置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