4.13. Langages de programmation dynamiques, serveurs web et de base de données
Le flux de modules nodejs:18
est désormais entièrement pris en charge
Le flux du module nodejs:18
, précédemment disponible en tant qu'aperçu technologique, est entièrement pris en charge avec la publication de l'avis RHSA-2022:8832. Le flux de modules nodejs:18
fournit désormais Node.js 18.12
, qui est une version de support à long terme (LTS).
Node.js 18
inclus dans RHEL 9.1 apporte de nombreuses nouvelles fonctionnalités ainsi que des corrections de bogues et de sécurité sur Node.js 16
.
Les changements les plus notables sont les suivants :
-
Le moteur
V8
est passé à la version 10.2. -
Le gestionnaire de paquets
npm
a été mis à jour vers la version 8.19.2. -
Node.js
propose désormais une nouvelle API expérimentalefetch
. -
Node.js
propose désormais un nouveau module expérimentalnode:test
, qui facilite la création de tests dont les résultats sont présentés dans le format Test Anything Protocol (TAP). -
Node.js
préfère désormais les adresses IPv6 aux adresses IPv4.
Pour installer le flux du module nodejs:18
, utilisez :
# dnf module install nodejs:18
(BZ#2083072)
Un nouveau flux de modules : php:8.1
RHEL 9.1 ajoute PHP 8.1
en tant que nouveau flux de modules php:8.1
.
Avec PHP 8.1
, vous pouvez :
- Définir un type personnalisé limité à une valeur parmi un nombre discret de valeurs possibles à l'aide de la fonctionnalité des énumérations (Enums)
-
Déclarer une propriété avec le modificateur
readonly
pour empêcher la modification de la propriété après l'initialisation - Utiliser des fibres, des fonctions interruptibles à pile complète
Pour installer le flux du module php:8.1
, utilisez :
# dnf module install php:8.1
Pour plus d'informations sur l'utilisation de PHP sur RHEL 9, voir Utilisation du langage de script PHP.
(BZ#2070040)
Un nouveau flux de modules : ruby:3.1
RHEL 9.1 introduit Ruby 3.1.2
dans un nouveau flux de modules ruby:3.1
. Cette version apporte un certain nombre d'améliorations de performance, de corrections de bogues et de sécurité, ainsi que de nouvelles fonctionnalités par rapport à Ruby 3.0
distribué avec RHEL 9.0.
Parmi les améliorations notables, citons
-
L'utilitaire
Interactive Ruby
(IRB) propose désormais une fonction d'autocomplétion et une boîte de dialogue de documentation -
Une nouvelle gemme
debug
, qui remplacelib/debug.rb
, améliore les performances et prend en charge le débogage à distance et le débogage multiprocessus/multithread -
La gem
error_highlight
fournit maintenant une localisation fine des erreurs dans le backtrace - Les valeurs des types de données littérales de hachage et des arguments de mots clés peuvent désormais être omises
-
L'opérateur d'épinglage (
^
) accepte désormais une expression dans la recherche de motifs - Les parenthèses peuvent désormais être omises dans la recherche de motifs sur une seule ligne
- YJIT, un nouveau compilateur expérimental Just-in-Time (JIT) in-process, est désormais disponible sur les architectures AMD et Intel 64 bits
-
L'utilitaire
TypeProf For IDE
a été introduit. Il s'agit d'un outil expérimental d'analyse statique de type pour le codeRuby
dans les IDE
Les améliorations suivantes ont été apportées au compilateur Just-in-Time basé sur la méthode (MJIT) :
-
Pour les charges de travail telles que
Rails
, la valeur maximale par défaut du cache JIT est passée de 100 à 10000 -
Le code compilé à l'aide de JIT n'est plus annulé lorsque l'option
TracePoint
pour les événements de classe est activée
D'autres changements notables sont à signaler :
-
Le fichier
tracer.rb
a été supprimé -
Depuis la version 4.0, l'analyseur YAML de
Psych
utilise par défaut la méthodesafe_load
Pour installer le flux du module ruby:3.1
, utilisez :
# dnf module install ruby:3.1
(BZ#2063773)
httpd
repassé à la version 2.4.53
Le serveur HTTP Apache a été mis à jour vers la version 2.4.53, qui apporte des corrections de bogues, des améliorations et des correctifs de sécurité par rapport à la version 2.4.51 distribuée avec RHEL 9.0.
Les changements notables apportés aux modules mod_proxy
et mod_proxy_connect
sont les suivants :
-
mod_proxy
: La limite de longueur du nom du contrôleur a été augmentée -
mod_proxy
: Vous pouvez maintenant configurer sélectivement les délais d'attente pour le backend et le frontend -
mod_proxy
: Vous pouvez maintenant désactiver la redirection des connexions TCP en définissant le paramètreSetEnv proxy-nohalfclose
-
mod_proxy
etmod_proxy_connect
: Il est interdit de modifier un code de statut après l'avoir envoyé à un client
En outre, une nouvelle fonction ldap
a été ajoutée à l'API d'expression, ce qui peut aider à prévenir la vulnérabilité de l'injection LDAP.
Une nouvelle valeur par défaut pour la directive LimitRequestBody
dans la configuration de httpd
Pour corriger CVE-2022-29404, la valeur par défaut de la directive LimitRequestBody
dans le serveur HTTP Apache a été modifiée de 0
(illimité) à 1 GiB.
Sur les systèmes où la valeur de LimitRequestBody
n'est pas explicitement spécifiée dans un fichier de configuration httpd
, la mise à jour du paquet httpd
fixe LimitRequestBody
à la valeur par défaut de 1 GiB. Par conséquent, si la taille totale du corps de la requête HTTP dépasse cette limite par défaut de 1 GiB, httpd
renvoie le code d'erreur 413 Request Entity Too Large
.
Si la nouvelle taille autorisée par défaut du corps d'un message de requête HTTP est insuffisante pour votre cas d'utilisation, mettez à jour vos fichiers de configuration httpd
dans le contexte respectif (serveur, par répertoire, par fichier ou par emplacement) et définissez votre limite préférée en octets. Par exemple, pour définir une nouvelle limite de 2 GiB, utilisez :
LimitRequestBody 2147483648
Les systèmes déjà configurés pour utiliser n'importe quelle valeur explicite pour la directive LimitRequestBody
ne sont pas affectés par ce changement.
(BZ#2128016)
Nouveau paquet : httpd-core
À partir de RHEL 9.1, le fichier binaire httpd
contenant tous les fichiers essentiels a été déplacé vers le nouveau paquet httpd-core
afin de limiter les dépendances du serveur HTTP Apache dans les scénarios où seule la fonctionnalité de base httpd
est nécessaire, par exemple, dans les conteneurs.
Le paquet httpd
fournit désormais des fichiers liés à systemd
, notamment mod_systemd
, mod_brotli
, et de la documentation.
Avec cette modification, le paquet httpd
ne fournit plus la valeur du numéro magique du module (MMN) httpd
. C'est le paquet httpd-core
qui fournit désormais la valeur httpd-mmn
. Par conséquent, il n'est plus possible de récupérer httpd-mmn
à partir du paquet httpd
.
Pour obtenir la valeur httpd-mmn
du binaire httpd
installé, vous pouvez utiliser le binaire apxs
, qui fait partie du paquetage httpd-devel
. Pour obtenir la valeur de httpd-mmn
, utilisez la commande suivante :
# apxs -q HTTPD_MMN 20120211
(BZ#2065677)
pcre2
repassé à la version 10.40
Le paquetage pcre2
, qui fournit la bibliothèque Perl Compatible Regular Expressions v2, a été mis à jour à la version 10.40.
Avec cette mise à jour, l'utilisation de la séquence d'échappement \K
dans les assertions de type "lookaround" est interdite, conformément au changement correspondant dans Perl 5.32
. Si vous comptez sur le comportement précédent, vous pouvez utiliser l'option PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK
. Notez que lorsque cette option est activée, \K
n'est accepté que dans les assertions positives et est ignoré dans les assertions négatives.