通过yum更新,在centos 6测试系统上从1.10.x升级到1.12.x升级了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";
我想知道如何解决错误显示的版本问题,并知道在我想要的那个之外省略这些模块是否可以?
感谢您的时间和考虑。
回滚到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
我发现我需要删除所有以前与nginx相关的文件rm -rf /etc/nginx
,然后在另一个make install
之后检查所有内容。
我刚刚备份了我的.conf文件,然后卸载并重新安装了nginx并修复了它。
如果有人遇到同样的问题,我邀请他按照这些步骤解决兼容性问题:
在制作需要在/etc/nginx/nginx.config下的nginx.conf配置文件中加载的模块ngx_http_modsecurity_module.so之前。
load_module modules/ngx_http_modsecurity_module.so;
并继续这个过程...如此处所述nginx.org希望我有所帮助。