Nginx是一个高性能的HTTP和反向代理服务器.
Nginx 使用 Unix 下常用的 ./configure && make && make install
过程来编译安装.
configure 脚本确定系统所具有一些特性,特别是 nginx 用来处理连接的方法。然后,它创建 Makefile 文件。
官网:http://nginx.org/
下载页面:http://nginx.org/download/nginx-1.11.3.tar.gz
1、nginx的准备工作
下载nginx-1.11.3.tar.gz包到你指定的目录下后,解压:
tar zxvf nginx-1.11.3.tar.gz
解压后在当前目录下会生成一个nginx-1.11.3的目录
进入解压后的目录,运行configure命令,
./configure --prefix=/home/aplus/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= option.
这是因为没有PCRE library的原因所致,通过下面的命令安装相关的lib即可解决
2、PCRE库的安装:
官网:http://www.pcre.org/
下载页面:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
选择最新版本下载:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.10.tar.gz
1)解压:
tar –zxvf pcre-8.10.tar.gz
解压目录为:pcre-8.10
然后进入到 cd pcre-8.10,进行配置、编译、安装
2)配置
./configure --prefix=/usr/local/pcre
3)编译pcre
make
ubuntu中在进行编译时可能遇到如下错误(redhat6.4中没有遇到以下错误):
make 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 `/home/mfcai/pcre-8.10'
make: *** [all] Error 2
解决方法:
安装build-essential
apt-get install build-essential
4)安装pcre
make install
3、nginx的安装
1)配置
./configure –prefix=/home/aplus/nginx –with-pcre=/usr/local/pcre/
注意:此处而不是安装的路径,应该是pcre源文件的路径
正确的命令是:
./configure --prefix=/home/aplus/nginx --with-pcre=/home/aplus/pcre-8.10
2)编译
make
3)安装
make install
Nginx会被安装在/home/aplus/nginx目录下(也可以使用参数–prefix=指定自己需要的位置)
安装成功后 /home/aplus/nginx 目录下有四个子目录分别是:conf、html、logs、sbin 。
其中 Nginx 的配置文件存放于 conf/nginx.conf,
bin文件是位于 sbin 目录下的 nginx 文件。
确保系统的 80 端口没被其他程序占用,运行 sbin/nginx 命令来启动 Nginx,
打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功
4、注意:
一、nginx的常用命令:
cd到/home/aplus/nginx/sbin下,
启动:./nginx -p /home/aplus/nginx
关闭:./nginx -s stop -p /home/aplus/nginx
重启:./nginx -s reload -p /home/aplus/nginx
二、nginx启动常见错误:
[aplus@redhat6 sbin]$ ./nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
解决方法:
原因是/home/aplus/nginx/conf/nginx.conf中配置的nginx的监听端口是<=1024的,小于1024的必须使用root用户启动nginx