centos7 源码编译安装 nginx

Posted l5gw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7 源码编译安装 nginx相关的知识,希望对你有一定的参考价值。

安装步骤

  1. 下载 nginx 源码包 官网
$ wget http://nginx.org/download/nginx-1.16.0.tar.gz 
  1. 解压 nginx 压缩包
$ tar -zxvf nginx-1.16.0.tar.gz 
  1. 运行 configure 文件检测程序
$ cd nginx-1.16.0 

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

checking for OS 

+ Linux 3.10.0-957.12.2.el7.x86_64 x86_64 

checking for C compiler ... not found 

./configure: error: C compiler cc is not found 
# 此处是因为没有 gcc 和 gcc-c++ 依赖包,由于我是 centos 可以直接通过yum进行安装 
$ yum -y install gcc gcc-c++
... 此处省略安装步奏
# 再次执行上面的 configure 步骤
$ ./configure --prefix=/usr/local/nginx 
... 此处省略一部分
./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 库 ,执行 yum 安装 pcre-devel即可
$ yum -y install pcre-devel
... 此处省略一部分
Running transaction
  正在安装    : pcre-devel-8.32-17.el7.x86_64                               1/1
  验证中      : pcre-devel-8.32-17.el7.x86_64                               1/1

已安装:
  pcre-devel.x86_64 0:8.32-17.el7

完毕!
# 再次执行 configure 步骤
$ ./configure --prefix=/usr/local/nginx 
... 此处省略一部分
./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 库 ,执行 yum 安装 zlib 和 zlib-devel 即可
$ yum -y install zlib zlib-devel
... 此处省略一部分
Running transaction
  正在安装    : zlib-devel-1.2.7-18.el7.x86_64                          1/1
  验证中      : zlib-devel-1.2.7-18.el7.x86_64                              1/1

已安装:
  zlib-devel.x86_64 0:1.2.7-18.el7

完毕!
# 再次执行 configure 步骤
$ ./configure --prefix=/usr/local/nginx
... 此处省略一部分
Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + using system zlib library

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"
# 总算通过了下面进行编译和安装
$ make && make install
# 检测是否安装成功
$ /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
# 辛苦总算没有白费,成功了.
  1. 启动 nginx 服务
$ /usr/local/nginx/sbin/nginx
# 启动了一个nginx服务,然我测试下是否启动成功
$ lsof -i:80
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   17440   root    6u  IPv4  35217      0t0  TCP *:http (LISTEN)
nginx   17441 nobody    6u  IPv4  35217      0t0  TCP *:http (LISTEN)
# 完成。
# PS:如果 lsof 没有这个操作可以使用 yum -y install lsof 安装

安装总结

$ wget http://nginx.org/download/nginx-1.16.0.tar.gz 
# 下载 源码包
$ tar -zxvf nginx-1.16.0.tar.gz 
# 解压 源码包
$ yum -y install gcc gcc-c++ pcre-devel zlib zlib-devel
# 安装 前置服务
$ ./configure --prefix=/usr/local/nginx -user=www -group=www
# 检测安装环境
$ make && make install
# 编译 和 安装
$ /usr/local/nginx/sbin/nginx
# 启动服务

操作命令

# 停止
[1]
$ pkill -9 nginx
[2]
$ nginx -s stop
# 检查配置是否正确
$ nginx -t
# 重启
$ nginx -s reload

以上是关于centos7 源码编译安装 nginx的主要内容,如果未能解决你的问题,请参考以下文章

Centos7通过yum跟源码编译安装Nginx

CentOS 7使用源码编译安装Nginx,以及配置使用autoindex模块

Centos7 编译安装Nginx 教程

求大神指导Centos7 源码编译安装Nginx+PHP 配置动静分离

centos7 源码编译安装heartbeat 以及结合nginx测试高可用

原创:Centos 7 源码编译安装 Nginx 1.13