SunJun/编译Nginx

Created Thu, 28 Jul 2016 00:00:00 +0800 Modified Tue, 27 Sep 2022 13:46:48 +0800
638 Words

###安装gcc g++环境(vps已有编译环境可以省略)

安装make环境:yum -y install automake autoconf libtool libtool-ltdl libtool-ltdl-devel make
安装gcc g++:yum -y install gcc gcc-c++

开始安装Nginx

在安装nginx之前一般先安装pcre、zlib,前者为了nginx中rewrite功能,后者为了解压gzip。

源码目录我们一般选择/usr/local/src

$ cd /usr/local/src

安装pcre库

$ cd /usr/local/src
$ wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.34.tar.gz
$ tar -zxvf pcre-8.34.tar.gz
$ mv pcre-8.34.tar.gz   pcre
$ cd pcre
$ ./configure
$ make & make install

安装zlib库

$ cd /usr/local/src
$ wget http://zlib.net/zlib-1.2.8.tar.选择源码目录gz
$ tar -zxvf zlib-1.2.8.tar.gz
$ mv zlib-1.2.8.tar.gz  zlib
$ cd zlib
$ ./configure
$ make & make install

安装SSl模块(某些vps默认没有安装SSL)

$ cd /usr/local/src
$ wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
$ tar -zxvf openssl-1.0.1c.tar.gz
$ mv openssl-1.0.1c.tar.gz  openssl
$ ./config
$ make & make install

安装Nginx

$ cd /usr/local/src
$ wget http://nginx.org/download/nginx-1.9.9.tar.gz
$ tar -zxvf nginx-1.9.9.tar.gz
$ cd nginx-1.9.9

$ ./configure --prefix=/usr/local/nginx \
	--with-http_ssl_module \
	--with-http_v2_module \
	--with-pcre=/usr/local/src/pcre \
	--with-zlib=/usr/local/src/zlib \
	--with-openssl=/usr/local/src/openssl

$ make & make install

安装成功以后进入nginx目录启动nginx

$ /usr/local/nginx/nginx

启动nginx如果提示80端口被占用。 nginx80端口占用
可以查看80端口被哪些进程占用,然后杀死该进程之后重启nginx kill80端口

6.编译可能遇到的错误

在更新了系统的openssl之后编译安装nginx的时候(具体是在make的时候)出现了如下报错: 更新openssl后nginx编译报错

nginx的configure参数中的–with-openssl已经指向了openssl的源代码了,这个时候需要修改nginx源码下的auto/lib/openssl中的conf文件

$ vim nginx-1.6.1/auto/lib/openssl/conf

修改之前的openssl 改为 修改之前的openssl

即指定nginx所需openssl中的头文件和库文件的位置。
保存之后,重新编译。

重新编译nginx

make成功,make install完成安装。