当nginx安装完成后需要添加新的模块时,我们需要添加该模块重新编译。
以添加nginx-rtmp-module模块为例:
环境:
系统:centos release 6.7 nginx/1.8.1
nginx安装位置:/opt/nginx
nginx软件包位置:/opt/software/nginx-1.8.1
准备:
下载模块:git clone https://github.com/arut/nginx-rtmp-module.git
放至指定位置:mv nginx-rtmp-module /opt/software/nginx-1.8.1/modules
查看已编译的参数:nginx -v
重新编译:
使用上一步查询到的参数,带上 --add-module=path_of_new_module
./configure ... --add-module=/opt/software/nginx-1.8.1/modules/nginx-rtmp-module
make
注意:这里只能make,千万不能执行make install,不然会覆盖安装
上一步执行完成后,会在当前目录下生成objs目录,其中的nginx文件即为新的二进制文件。
备份源文件:cp /opt/nginx/sbin/nginx /opt/nginx/sbing/nginx.bak
替换nginx二进制文件:cp -f /opt/software/nginx-1.8.1/objs/nginx /opt/nginx/sbin/nginx
正确性检查:nginx -t
reload nginx:nginx -s reload
错误处理:
当输入make命令后出现如下错误:error: macro "__DATE__" might prevent reproducible builds [-Werror=date-time],解决方法如下:
1、在编译驱动的相应Makefile中增加一行:CFLAGS += -Wno-error=date-time,然后保存重新 make;
2. 若 CFLAGS 不生效,将关键字替换为 EXTRA_FLAGS;
方法二:在objs/Makefile中将 -Werror删除,对于warning忽略,然后再make