通过yum update,在1.10.x到1.12.x的centos 6测试系统上升级nginx。然后我按照步骤使GeoIP模块工作(https://tushev.org/articles/linux-bsd/32/using-dynamic-geoip-module-with-nginx-centos)。
当我运行nginx -t时,会显示以下错误:
$ nginx -t
nginx: [emerg] module "/usr/lib64/nginx/modules/ngx_http_image_filter_module.so" version 1010002 instead of 1012000 in /usr/share/nginx/modules/mod-http-image-filter.conf:1
nginx: configuration file /etc/nginx/nginx.conf test failed
在我的nginx.conf文件中,我注释掉了下面的一行
include /usr/share/nginx/modules/*.conf;
和nginx再次按预期工作。这太棒了,但没有解决我的问题。由于这是一个开发环境,我需要让它100%工作。我不确定在阅读规范(http://nginx.org/en/docs/http/ngx_http_image_filter_module.html)之后我真的需要图像过滤器。
此外,我确实添加了单个模块,但也很幸运:
load_module "modules/ngx_http_geoip_module.so";
我想知道如何解决错误显示的版本问题,并知道在我想要的那个之外省略这些模块是否合适?
感谢您的时间和考虑。
答案 0 :(得分:1)
回滚到1.10.2。
nginx: [emerg] module "/etc/nginx/modules/ngx_http_geoip_module.so" version 1010002 instead of 1013002 in /etc/nginx/nginx.conf:12
nginx version: nginx/1.13.2
答案 1 :(得分:1)
我发现我需要删除所有以前与nginx相关的文件rm -rf /etc/nginx
,然后在另一个make install
之后检查所有内容。
答案 2 :(得分:0)
我刚刚备份了我的.conf文件,然后卸载并重新安装了nginx,它已修复。
答案 3 :(得分:0)
万一有人遇到相同的问题,我邀请他按照以下步骤解决兼容性问题:
在制作模块ngx_http_modsecurity_module.so之前,需要先将其加载 /etc/nginx/nginx.config下的nginx.conf配置文件。
load_module modules/ngx_http_modsecurity_module.so;
并继续该过程...如此处nginx.org所述 希望对我有帮助。
答案 4 :(得分:0)
为遇到类似问题的人发布另一种解决方案,在我configured yum
to look to the latest version之后,在Centos 7上运行以下以下命令对我有用:
sudo yum remove nginx-mod*
sudo yum install nginx-module-*
答案 5 :(得分:0)
我的问题是
sudo nginx -t
2021/07/22 16:54:54 [emerg] 2637399#2637399: module "/usr/lib/nginx/modules/ngx_http_geoip2_module.so" version 1020001 instead of 1020000 in /etc/nginx/nginx.conf:1
nginx: configuration file /etc/nginx/nginx.conf test failed
这意味着我的 ngx_http_geoip2_module
模块版本与我的 Nginx 版本不匹配。
由于我刚刚安装了 ngx_http_geoip2_module
最新版本,所以必须是我的 Nginx 版本需要更新。
升级 Nginx 版本解决了我的问题