搜索

4.13. 动态编程语言、网页和数据库服务器

download PDF

nodejs:18 模块流现已全面支持

以前作为技术预览提供的 nodejs:18 模块流,随着 RHSA-2022:8832 公告的发布而完全支持。nodejs:18 模块流现在提供 Node.js 18.12,它是一个长期支持(LTS)版本。

Node.js 18 包括在 RHEL 9.1 中,与 Node.js 16 相比,提供了许多新功能,以及程序错误和安全修复。

主要变更包括:

  • V8 引擎已升级至版本 10.2。
  • npm 软件包管理器已升级至 8.19.2 版本。
  • Node.js 现在提供了一个新的实验性 fetch API。
  • Node.js 现在提供了一个新的实验性 node:test 模块,它便于创建以 test Anything Protocol (TAP)格式报告结果的测试。
  • Node.js 现在更喜欢使用 IPv6 地址,而不是 IPv4。

要安装 nodejs:18 模块流,请使用:

# dnf module install nodejs:18

(BZ#2083072)

新模块流: php:8.1

RHEL 9.1 添加 PHP 8.1 作为新的 php:8.1 模块流。

使用 PHP 8.1,您可以:

  • 使用枚举 (Enums) 功能,定义仅限于离散值数的自定义类型
  • 使用 readonly 修饰符声明属性,以防止在初始化后修改属性
  • 使用光纤、全堆栈、中断功能

要安装 php:8.1 模块流,请使用:

# dnf module install php:8.1

有关 RHEL 9 上 PHP 用法的详情,请参阅 使用 PHP 脚本语言

(BZ#2070040)

新模块流:ruby:3.1

RHEL 9.1 在新的 ruby:3.1 模块流中引入了 Ruby 3.1.2。与 RHEL 9.0 提供的 Ruby 3.0 相比,这个版本提供了很多性能改进、程序错误和安全修复以及新功能。

主要改进包括:

  • Interactive Ruby (IRB)工具现在提供自动完成功能以及文档对话框
  • 新的 debug gem,它替换了 lib/debug.rb,提供了改进的性能,并支持远程调试和多进程/多线程调试
  • error_highlight gem 现在在 backtrace 中提供精细的错误位置
  • 现在可以省略哈希文本数据类型和关键字参数中的值
  • pin 运算符(^)现在接受模式匹配中的表达式
  • 现在,可以在单行模式匹配省略括号
  • YJIT 一种新的实验性进程内实时(JIT)编译器,现在在 AMD 和 Intel 64 位构架上提供
  • 已引进了 TypeProf For IDE 工具,这是 IDE 中 Ruby 代码的实验性静态类型分析工具。

以下性能改进已在基于方法的实时编译器(MJIT)中实现了:

  • 对于像 Rails 这样的工作负载,默认的最大 JIT 缓存值从 100 增加到 10000
  • 当启用了 class 事件的 TracePoint 时,使用 JIT 编译的代码将不再被取消

其他显著变化包括:

  • tracer.rb 文件已被删除
  • 自版本 4.0 起,Psych YAML 解析器默认使用 secure_load 方法

要安装 ruby:3.1 模块流,请使用:

# dnf module install ruby:3.1

(BZ#2063773)

httpd 更新到版本 2.4.53

Apache HTTP 服务器已更新至 2.4.53 版本,它比 RHEL 9.0 发布的版本 2.4.51 提供了程序错误修正、功能增强和安全修复。

mod_proxymod_proxy_connect 模块中的显著变化包括:

  • mod_proxy :控制器名称的长度限制已增加
  • mod_proxy :您现在可以选择性地为后端和前端配置超时
  • mod_proxy :现在您可以通过设置 SetEnv proxy-nohalfclose 参数来禁用 TCP 连接重定向
  • mod_proxymod_proxy_connect :禁止在将状态代码发送到客户端后更改状态代码

另外,在表达式 API 中添加了新的 ldap 功能,这有助于防止 LDAP 注入漏洞。

(BZ#2079939)

httpd 配置中 LimitRequestBody 指令的新默认值

要修复 CVE-2022-29404,Apache HTTP 服务器中的 LimitRequestBody 指令的默认值已从 0 (无限)变为 1 GiB。

httpd 配置文件中没有明确指定 LimitRequestBody 的值系统上,更新 httpd 软件包会将 LimitRequestBody 设为默认值 1 GiB。因此,如果 HTTP 请求正文的总大小超过这个 1 GiB 默认限制,则 httpd 会返回 413 Request Entity Too Large 错误码。

如果 HTTP 请求消息正文的新默认允许的大小不满足您的用例,请在相应的上下文中(服务器、每目录、每文件或每位置)更新您的 httpd 配置文件,并以字节为单位设置您的首选限制。例如,要设置一个新的 2 GiB 限制,请使用:

LimitRequestBody 2147483648

已被配置为使用 LimitRequestBody 指令的任何显式值的系统不受此更改的影响。

(BZ#2128016)

新软件包:httpd-core

从 RHEL 9.1 开始,所有基本文件的 httpd 二进制文件已移至新的 httpd-core 软件包,以便在需要基本 httpd 功能的情况下限制 Apache HTTP 服务器的依赖项,如容器中。

httpd 软件包现在提供 systemd- 相关文件,包括 mod_systemdmod_brotli 以及文档。

在这个版本中,httpd 软件包不再提供 httpd 模块魔法号 (MMN) 值。相反,httpd-core 软件包现在提供 httpd-mmn 值。因此,无法从 httpd 软件包获取 httpd-mmn

要获得安装的 httpd 二进制文件的 httpd-mmn 值,您可以使用 apxs 二进制文件,这是 httpd-devel 软件包的一部分。要获取 httpd-mmn 值,请使用以下命令:

# apxs -q HTTPD_MMN
20120211

(BZ#2065677)

pcre2 更新到版本 10.40

提供 Perl 兼容正则表达式库 v2 的 pcre2 软件包已更新至版本 10.40。

在这个版本中,与 Perl 5.32 中的相应变化一致,在 lookaround 断言时使用 \K 转义序列被禁止。如果依赖以前的行为,您可以使用 PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK 选项。请注意,当设定这个选项时,\K 只接受正的断言,但会在负断言中忽略。

(BZ#2086494)

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.