`

nginx使用源码编译安装

阅读更多

nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息。

正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好。


下面正式开始
---------------------------------------------------------------------------
一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。
1.选定源码目录
可以是任何目录,本文选定的是/usr/local/src
cd /usr/local/src


2.安装PCRE库
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

cd /usr/local/src

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.gz
tar -zxvf pcre-8.21.tar.gz
cd pcre-8.21
./configure
make
make install

 


3.安装zlib库
http://zlib.net/zlib-1.2.7.tar.gz 下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:

cd /usr/local/src

wget http://zlib.net/zlib-1.2.7.tar.gz
tar -zxvf zlib-1.2.7.tar.gz
cd zlib-1.2.7
./configure
make
make install

3.安装nginx

Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到 /usr/local/nginx 目录下的详细步骤:

cd /usr/local/src

wget http://nginx.org/download/nginx-1.3.10.tar.gz
tar -zxvf nginx-1.3.10.tar.gz
cd nginx-1.3.10
./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.21 --with-zlib=/usr/local/src/zlib-1.2.7
make
make install

--with-pcre=/usr/src/pcre-8.21 指的是pcre-8.21 的源码路径。
--with-pcre=/usr/src/zlib-1.2.7 指的是zlib-1.2.7 的源码路径。


安装成功后 /usr/local/nginx 目录下如下

 

确保系统的 80 端口没被其他程序占用,运行/usr/local/nginx/nginx 命令来启动 Nginx,

sudo /usr/local/nginx/nginx (ubuntu下必须用sudo启动,不然只能在前台运行)

打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。

 

附:可能遇到的错误和一些帮助信息

1.1编译pcre错误

libtool: compile: unrecognized option `-DHAVE_CONFIG_H'
libtool: compile: Try `libtool --help' for more information.
make[1]: *** [pcrecpp.lo] Error 1
make[1]: Leaving directory `/usr/local/src/pcre-8.21'
make: *** [all] Error 2

 

解决办法:安装g++,别忘了重新configure

apt-get install g++

apt-get install build-essential

make clean

./configure

make

 

1.2 make出错
make: *** No rule to make target `build', needed by `default'. Stop.
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.

按照第3.1步的安装方法或者添加--with-openssl=<path>
cd /usr/local/src
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar -zxvf openssl-1.0.1c.tar.gz
重新编译
cd ../nginx-1.2.3
./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.21 --with-zlib=/usr/local/src/zlib-1.2.7 --with-openssl=/usr/local/src/openssl-1.0.1c

 

 

2.nginx编译选项

make是用来编译的,它从Makefile中读取指令,然后编译。

make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

configure命令是用来检测你的安装平台的目标特征的。它定义了系统的各个方面,包括nginx的被允许使用的连接处理的方法,比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本,执行结束时,它会创建一个Makefile文件。nginx的configure命令支持以下参数:

--prefix=path 定义一个目录,存放服务器上的文件 ,也就是nginx的安装目录。默认使用 /usr/local/nginx。
--sbin-path=path 设置nginx的可执行文件的路径,默认为 prefix/sbin/nginx.
--conf-path=path 设置在nginx.conf配置文件的路径。nginx允许使用不同的配置文件启动,通过命令行中的-c选项。默认为prefix/conf/nginx.conf.
--pid-path=path 设置nginx.pid文件,将存储的主进程的进程号。安装完成后,可以随时改变的文件名 , 在nginx.conf配置文件中使用 PID指令。默认情况下,文件名 为prefix/logs/nginx.pid.
--error-log-path=path 设置主错误,警告,和诊断文件的名称。安装完成后,可以随时改变的文件名 ,在nginx.conf配置文件中 使用 的error_log指令。默认情况下,文件名 为prefix/logs/error.log.
--http-log-path=path 设置主请求的HTTP服务器的日志文件的名称。安装完成后,可以随时改变的文件名 ,在nginx.conf配置文件中 使用 的access_log指令。默认情况下,文件名 为prefix/logs/access.log.
--user=name 设置nginx工作进程的用户。安装完成后,可以随时更改的名称在nginx.conf配置文件中 使用的 user指令。默认的用户名是nobody。
--group=name 设置nginx工作进程的用户组。安装完成后,可以随时更改的名称在nginx.conf配置文件中 使用的 user指令。默认的为非特权用户。
--with-select_module --without-select_module 启用或禁用构建一个模块来允许服务器使用select()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。
--with-poll_module --without-poll_module 启用或禁用构建一个模块来允许服务器使用poll()方法。该模块将自动建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。
--without-http_gzip_module — 不编译压缩的HTTP服务器的响应模块。编译并运行此模块需要zlib库。
--without-http_rewrite_module 不编译重写模块。编译并运行此模块需要PCRE库支持。
--without-http_proxy_module — 不编译http_proxy模块。
--with-http_ssl_module — 使用https协议模块。默认情况下,该模块没有被构建。建立并运行此模块的OpenSSL库是必需的。
--with-pcre=path — 设置PCRE库的源码路径。PCRE库的源码(版本4.4 - 8.30)需要从PCRE网站下载并解压。其余的工作是Nginx的./ configure和make来完成。正则表达式使用在location指令和 ngx_http_rewrite_module 模块中。
--with-pcre-jit —编译PCRE包含“just-in-time compilation”(1.1.12中, pcre_jit指令)。
--with-zlib=path —设置的zlib库的源码路径。要下载从 zlib(版本1.1.3 - 1.2.5)的并解压。其余的工作是Nginx的./ configure和make完成。ngx_http_gzip_module模块需要使用zlib 。
--with-cc-opt=parameters — 设置额外的参数将被添加到CFLAGS变量。例如,当你在FreeBSD上使用PCRE库时需要使用:--with-cc-opt="-I /usr/local/include。.如需要需要增加 select()支持的文件数量:--with-cc-opt="-D FD_SETSIZE=2048".
--with-ld-opt=parameters —设置附加的参数,将用于在链接期间。例如,当在FreeBSD下使用该系统的PCRE库,应指定:--with-ld-opt="-L /usr/local/lib".

典型实例(下面为了展示需要写在多行,执行时内容需要在同一行)

./configure
--sbin-path=/usr/local/nginx/nginx
--conf-path=/usr/local/nginx/nginx.conf
--pid-path=/usr/local/nginx/nginx.pid
--with-http_ssl_module
--with-pcre=../pcre-4.4
--with-zlib=../zlib-1.1.3

分享到:
评论

相关推荐

    Nginx的源码编译安装.doc

    在本文中,我们将深入探讨如何源码编译安装Nginx服务器,以及一些与之相关的管理操作。Nginx是一款高性能、轻量级的HTTP和反向代理服务器,以其高效和稳定性著称。 首先,我们需要下载必要的依赖库,这里是PCRE...

    nginx源码编译安装

    nginx源码编译安装;本人亲测,可以使用。nginx-1.10.2

    nginx源码编译安装.docx

    Nginx 源码编译安装和优化 Nginx 是一款流行的开源网页服务器软件,可以作为 HTTP 服务器、反向代理服务器、缓存服务器、负载均衡器等。下面将详细介绍 Nginx 源码编译安装和优化的过程。 一、下载和解压 Nginx ...

    Linux系统源码编译安装升级Nginx版本

    ### Linux系统源码编译安装升级Nginx版本 #### 升级背景及原因 在当前信息化社会中,Web服务器的安全性尤为重要。Nginx作为一款高性能的HTTP和反向代理Web服务器,被广泛应用于互联网架构中。然而,即便是如此优秀...

    linux Nginx源码编译安装以及开机启动设置(CentOS6.3)

    本文将详细介绍如何在CentOS 6.3上通过源码编译安装Nginx,并设置其为开机启动。 一、准备工作 在开始安装前,确保系统已经更新到最新版本,并安装了必要的依赖工具。运行以下命令: ```bash sudo yum update -y ...

    Nginx源码编译安装.md

    ### Nginx源码编译安装详解 #### 一、前言 Nginx是一款高性能的HTTP和反向代理Web服务器,它以其出色的稳定性、丰富的功能集、简单的配置方式和低资源消耗而闻名。在很多场景下,尤其是高并发访问的情况下,Nginx...

    nginx源码 rtmp-module 源码 及编译方法

    **Nginx源码分析与RTMP模块编译** Nginx是一款高性能的Web服务器,以其反向代理、负载均衡和静态文件处理能力而闻名。它采用事件驱动模型,能够高效地处理高并发请求,是许多网站和流媒体服务的首选解决方案。在本...

    Nginx源码安装手册

    之后,使用./configure命令配合一系列参数来配置源码编译选项。这里指定了Nginx的安装路径、运行用户、组以及要包含的模块,如http_stub_status_module和http_realip_module。 http_stub_status_module模块提供了...

    Nginx编译安装配置.pdf

    下载 Nginx 源码是编译安装 Nginx 的第一步。可以从 Nginx 官方网站下载最新的源码包,然后解压缩源码包,开始编译安装。 五、Nginx 编译安装 编译安装 Nginx 需要 configure脚本来生成 make 文件,然后通过 make ...

    Linux运维-d1企业架构之LNMP-10Nginx源码编译安装.mp4

    Linux运维-d1企业架构之LNMP-10Nginx源码编译安装.mp4

    nginx介绍及编译安装.zip

    6. **安装Nginx**:使用 `make install` 命令将编译好的 Nginx 安装到指定路径。 7. **启动与配置**:通过 `nginx -c /path/to/nginx.conf` 启动 Nginx,并根据需求修改配置文件 `nginx.conf`。 8. **守护进程化**:...

    ubuntu18.04下交叉编译nginx1.18.0源码(平台aarch64-linux-gnu)

    1. **Nginx源码**:这里使用的是版本1.18.0,文件名为`nginx-1.18.0.zip`。Nginx是一款高性能的Web服务器和反向代理服务器,可以处理静态内容、动态内容以及流媒体服务。 2. **OpenSSL**:`openssl-1.1.1f.tar.gz`...

    arm架构nginx编译器安装

    本文将详细讲解在基于ARM架构的系统上编译安装Nginx的过程,这对于那些希望在嵌入式设备或基于ARM的服务器上运行高性能Web服务的用户来说至关重要。 首先,你需要确保你的ARM系统已经安装了必要的编译工具和依赖库...

    nginx1.6源码一键安装 已经包含所以依赖包

    对于Nginx 1.6,源码安装步骤包括下载源代码、编译和安装,这个压缩包提供了一键安装脚本,简化了这个过程。 3. **依赖包** 压缩包中包含了多个依赖库的源码,例如: - **pcre-8.35**: PCRE(Perl Compatible ...

    nginx各版本源码包

    6. **安装**:使用 `make install` 命令将编译好的 Nginx 安装到指定目录(如 /usr/local/nginx)。 7. **启动和配置**:启动 Nginx 并根据需求进行配置,如 `sudo /usr/local/nginx/sbin/nginx`,然后通过修改 `/...

    nginx离线编译安装依赖

    - 安装PCRE库可以通过源码编译,也可以使用系统的包管理器(如`yum install pcre-devel`或`apt-get install libpcre3-dev`)。 对于Nginx的其他依赖: - zlib库负责数据压缩,例如GZIP压缩,Nginx使用它来压缩HTTP...

    源代码编译安装nginx,编译安装nginx的好处

    1. **过程复杂**:与预编译的二进制包相比,源代码编译安装需要下载源码、配置参数、编译、安装等多个步骤,对于初学者来说有一定难度。 2. **耗时较长**:编译过程可能需要较长时间,特别是当系统资源有限或源代码...

    nginx一键安装包含自动安装脚本

    5. **编译与配置Nginx**: 对Nginx源码进行配置,确保指定了已安装的依赖库路径。 6. **编译与安装Nginx**: 同样使用`make`和`make install`来完成Nginx的安装。 **一键安装脚本** 为了简化上述过程,可以编写一个...

Global site tag (gtag.js) - Google Analytics