开始动手
打算给电脑上的nginx添加一个当时没有编译安装的echo-nginx-module模块,这是一个第三方模块,要知道nginx要添加模块是需要重新编译的,这一点跟apache不同,apache是在配置文件里引用.so文件的。
首先先nginx -V
,查看一下nginx已经编译的模块都有啥,如图:
于是我就git clone https://github.com/openresty/echo-nginx-module
,但是发现竟然告诉我“git: command not found”。oh shit,原来这台nginx实验机器压根就没有装过git啊!而yum源里的软件基本上已经过时的太久了,就拿git来说吧,使用yum info git
看到的版本是1.8.3.1。但是在https://github.com/git/git/releases 里可以看到,git的版本现在已经丧心病狂的到达了2.16的版本了。
那么我们先安装git!
通过yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
和yum install gcc perl-ExtUtils-MakeMaker
来安装依赖库。wget https://github.com/git/git/archive/v2.16.0-rc0.tar.gz
来下载2.16的git保存到centos里。tar -xzvf v2.9.2.tar.gz -C /目标目录/
,然后在目标目录里面执行make prefix=/usr/local/git all
和make prefix=/usr/local/git install
,编译过程可能会比较长,请耐心等待。
编译结束之后,echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
,把git添加到环境变量,再source /etc/bashrc
让它实时生效,最后再一次看看git --version
,大功告成!
编译新模块
git搞定了之后,重新git clone https://github.com/openresty/echo-nginx-module
,然后在nginx的configure文件夹里面,把echo-nginx-module模块添加上。命令如下:./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/root/pcre-8.41 --with-http_v2_module --add-module=/root/echo-nginx-module-0.61
,我这里还附赠了一个“http_v2_module”。
configure完毕之后,去make
一下就可以了,不要轻易make install
,不然就是重新安装了。原来的nginx.conf等配置都没了。
养成替换nginx二进制文件的好习惯,如下:
1
2cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp nginx编译目录/objs/nginx /usr/local/nginx/sbin/
然后再打开看一下nginx -V