PTS编译nginx一直失败,lua-nginx-module模块不支持pcre2,最终换了pcre低版本,帮忙看下?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用阿里云性能测试(PTS)时,如果遇到编译 Nginx 失败的问题,特别是与 lua-nginx-module
模块不支持 pcre2
相关的错误,您可以通过以下步骤解决此问题。以下是详细的解决方案:
在编译 Nginx 之前,确保系统中已正确安装所有必要的依赖项。根据知识库中的说明,需要安装以下工具和库:
sudo yum install -y gcc pcre-devel zlib-devel openssl-devel
注意: 如果您的系统默认安装了 pcre2
,而 lua-nginx-module
不支持 pcre2
,则需要卸载 pcre2
并安装低版本的 pcre
。
运行以下命令以卸载 pcre2
:
sudo yum remove pcre2
下载并安装低版本的 pcre
(例如 pcre-8.45
):
wget https://ftp.pcre.org/pub/pcre/pcre-8.45.tar.gz
tar -zxvf pcre-8.45.tar.gz
cd pcre-8.45
./configure
make && sudo make install
完成上述步骤后,重新编译 Nginx 并指定 lua-nginx-module
模块。
从 Nginx 官方网站下载最新稳定版源码:
wget http://nginx.org/download/nginx-1.28.1.tar.gz
tar -zxvf nginx-1.28.1.tar.gz
cd nginx-1.28.1
克隆 lua-nginx-module
模块的源码:
git clone https://github.com/openresty/lua-nginx-module.git
在配置阶段,添加 lua-nginx-module
模块,并确保链接到低版本的 pcre
:
./configure --with-pcre=/usr/local/lib --add-module=./lua-nginx-module
make && sudo make install
完成编译后,验证 Nginx 是否成功安装并支持 lua-nginx-module
:
nginx -V
输出中应包含 --add-module=./lua-nginx-module
,表明模块已成功加载。
lua-nginx-module
当前不支持 pcre2
,因此必须使用低版本的 pcre
(如 pcre-8.x
)。pcre
版本可能对某些高级正则表达式功能产生影响,请确保您的业务场景不受限制。通过以上步骤,您可以解决因 lua-nginx-module
不支持 pcre2
导致的编译失败问题。如果仍有疑问或遇到其他错误,请提供更多详细信息以便进一步排查。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。
云原生可观测基于Prometheus、Grafana 、OpenTelemetry 等核心产品, 形成指标、链路存储分析、异构数据源集成的数据层, 通过标准PromQL和SQL提供大盘展示、告警与探索能力。