1、下载源码
wget https://nginx.org/download/nginx-1.11.3.tar.gz
tar -zxvf nginx-1.11.3.tar.gz
cd nginx-1.11.3
2、./configure
报错了:
./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.
上面提示我们说如果需要开启http rewrite功能,那就必须依赖PCRE扩展,我们知道rewrite在web开发中是非常重要的。安装之…
找到源码下载之:
wget http://ftp.exim.llorien.org/pcre/pcre2-10.22.tar.gz
tar -zxvf pcre2-10.22.tar.gz
cd pcre2-10.22/
./configure
make
make install
再继续安装nginx:
./configure –with-pcre=/home/local/pcre2-10.22/
发现执行完上面的配置命令后看到下面的配置汇总信息,貌似是openssl和zlib扩展不是必须安装的,但是为了完整性(装逼),还是装一下吧。
Configuration summary
+ using PCRE library: /home/local/pcre2-10.22/
+ 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"
安装openssl:
wget https://www.openssl.org/source/openssl-1.0.2h.tar.gz
tar -zxvf openssl-1.0.2h.tar.gz
./config
make depend
make & make install
安装zlib:
wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make & make install
最后安装nginx:
./configure --with-pcre=/home/local/pcre2-10.22 --with-openssl=/home/local/openssl-1.0.2h --with-zlib=/home/local/zlib-1.2.8 --prefix=/home/local/nginx
这里报了一个错误:
In file included from src/core/ngx_core.h:72:0,
from src/core/nginx.c:9:
src/core/ngx_regex.h:15:18: fatal error: pcre.h: No such file or directory
#include
^
compilation terminated.
make[1]: *** [objs/src/core/nginx.o] Error 1
make[1]: Leaving directory `/home/local/nginx-1.11.3'
make: *** [build] Error 2
网上搜了一下是因为没有安装pcre-devel库,so,安装之。
yum install pcre-devel.*
再次
make clean
make & make install
草,这时候又报了个错:
cd /home/local/pcre2-10.22 \
&& make libpcre.la
make[2]: Entering directory `/home/local/pcre2-10.22'
make[2]: *** No rule to make target `libpcre.la'. Stop.
make[2]: Leaving directory `/home/local/pcre2-10.22'
make[1]: *** [/home/local/pcre2-10.22/.libs/libpcre.a] Error 2
make[1]: Leaving directory `/home/local/nginx-1.11.3'
make: *** [install] Error 2
搜了一大堆也没找到,干脆换个低版本的试试(我的是pcre-8.31 wget http://exim.mirror.fr/pcre/pcre-8.31.tar.gz),果然好用。
先测试一下nginx是否能启动:
sbin/nginx
注:
mac的话会报一个错误:nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)
主要原因是由于在Linux中1024以下的端口号都需要root权限才能使用,所以普通用户启动程序绑定会报出权限问题。
解决办法是在命令前边加sudo
netstat -tunpl |grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6224/nginx: master
最后在防火墙开启一下80端口别人才能访问:
# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
# firewall-cmd --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports: 80/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
# iptables -L -n | grep 80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ctstate NEW
好了,nginx基本配好了。