PTS编译nginx一直失败,lua-nginx-module模块不支持pcre2,帮忙看下?

20a5ef1f4da8dc40b891308971798763.jpg 606d36c2c2a07b1f82d394c59626c992.jpg
PTS编译nginx一直失败,lua-nginx-module模块不支持pcre2,最终换了pcre低版本,帮忙看下?

展开
收起
冰激凌甜筒 2023-05-29 21:01:16 162 发布于安徽 分享
分享
版权
举报
阿里云 AI 助理回答

在使用阿里云性能测试(PTS)时,如果遇到编译 Nginx 失败的问题,特别是与 lua-nginx-module 模块不支持 pcre2 相关的错误,您可以通过以下步骤解决此问题。以下是详细的解决方案:


1. 确认依赖项安装

在编译 Nginx 之前,确保系统中已正确安装所有必要的依赖项。根据知识库中的说明,需要安装以下工具和库:

sudo yum install -y gcc pcre-devel zlib-devel openssl-devel

注意: 如果您的系统默认安装了 pcre2,而 lua-nginx-module 不支持 pcre2,则需要卸载 pcre2 并安装低版本的 pcre


2. 卸载 pcre2 并安装低版本 pcre

卸载 pcre2

运行以下命令以卸载 pcre2

sudo yum remove pcre2

安装低版本 pcre

下载并安装低版本的 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

3. 重新编译 Nginx

完成上述步骤后,重新编译 Nginx 并指定 lua-nginx-module 模块。

下载 Nginx 源码

从 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 模块

克隆 lua-nginx-module 模块的源码:

git clone https://github.com/openresty/lua-nginx-module.git

配置并编译 Nginx

在配置阶段,添加 lua-nginx-module 模块,并确保链接到低版本的 pcre

./configure --with-pcre=/usr/local/lib --add-module=./lua-nginx-module
make && sudo make install

4. 验证安装

完成编译后,验证 Nginx 是否成功安装并支持 lua-nginx-module

nginx -V

输出中应包含 --add-module=./lua-nginx-module,表明模块已成功加载。


5. 重要提醒

  • pcre 版本兼容性lua-nginx-module 当前不支持 pcre2,因此必须使用低版本的 pcre(如 pcre-8.x)。
  • 性能影响:更换 pcre 版本可能对某些高级正则表达式功能产生影响,请确保您的业务场景不受限制。
  • 依赖管理:建议在独立环境中进行编译,避免影响系统其他服务。

通过以上步骤,您可以解决因 lua-nginx-module 不支持 pcre2 导致的编译失败问题。如果仍有疑问或遇到其他错误,请提供更多详细信息以便进一步排查。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

云原生可观测基于Prometheus、Grafana 、OpenTelemetry 等核心产品, 形成指标、链路存储分析、异构数据源集成的数据层, 通过标准PromQL和SQL提供大盘展示、告警与探索能力。

还有其他疑问?
咨询AI助理