CentOS 7的源所提供的nginx几乎不包含任何扩展模块;为了能够使用一些扩展模块,我们需要从源代码重新编译安装nginx。
目前最新版的源代码是1.6.1。下载解压后先不要急着configure,先看看CentOS本身提供的nginx的configure选项:
# nginx -V
我们尽量使用相同的configure选项重新编译,以使用一致的执行文件与配置文件位置。原有的configure选项中,只需去掉--with-cc-opt和--with-ld-opt选项即可。
将我们需要的扩展模块下载下来后,使用下面的指令在nginx源代码目录进行configure(可能先要yum install gcc-c++):
# auto/configure …… --add-module=../ngx_http_substitutions_filter_module/
上面的指令中,--add-module=后面是扩展模块源代码目录。有多个扩展模块就用多个--add-module。
configure过程中可能会多次抱怨缺某某依赖,一般用yum -y install xxxx-devel就能解决。(编译过程需要这些依赖库的头文件,所以我们要安装xxx-devel。)
几个名字不明显的package:
yum -y install perl-ExtUtils-Embed
yum -y install google-perftools
yum -y install google-perftools-devel
make之后sudo make install。
因为我们继承了原有nginx的编译配置,所以install后原有的配置文件、日志、执行文件等全都保持在原来的地方,直接systemctl restart nginx即可。