4.7. Langages de programmation dynamiques, serveurs web et de bases de données (traduction automatique)
Python 3 est l'implémentation par défaut Pythonde RHEL 8
					Red Hat Enterprise Linux 8 est distribué avec Python 3.6. Le paquetage n'est pas installé par défaut. Pour installerPython 3.6, utilisez la yum install python3commande.
				
				Python 2.7 est disponible dans le python2paquet. Toutefois, Python 2aura un cycle de vie plus court et son objectif est de faciliter une transition en douceur pour Python 3les clients.
			
				Ni le paquet par défaut pythonni l'exécutable non versionné ne sont distribués avec RHEL 8. Il est conseillé aux clients d'utiliser python3ou python2directement. Alternativement, les administrateurs peuvent configurer la commande non versionnée pythonen utilisant la alternativescommande.
			
Pour plus de détails, voir Using Python in Red Hat Enterprise Linux 8.
(BZ#1580387)
Les scripts Python doivent spécifier la version majeure dans les hashbangs au moment de la construction du RPM
Dans RHEL 8, les scripts Python exécutables doivent utiliser des hashbangs (shebangs) spécifiant explicitement au moins la version Python majeure.
				Le script /usr/lib/rpm/redhat/brp-mangle-shebangsbuildroot policy (BRP) est exécuté automatiquement lors de la création d'un paquet RPM. Ce script tente de corriger les hashbangs dans tous les fichiers exécutables. Lorsque le script rencontre des hashbangs ambigus qui ne peuvent pas être résolus dans une version majeure de Python, il génère des erreurs. Voici des exemples de ces hashbangs ambigus :
			
- 
						
#! /usr/bin/python - 
						
#! /usr/bin/env python 
				Pour modifier les hashbangs dans les scripts Python causant ces erreurs de compilation au moment de la compilation RPM, utilisez le pathfix.pyscript du paquet platform-python-devel :
			
pathfix.py -pn -i %{__python3} PATH ...
pathfix.py -pn -i %{__python3} PATH ...
				Plusieurs PATHs peuvent être spécifiés. Si un PATH est un répertoire, recherche pathfix.pyrécursivement les scripts Python correspondant au motif^[a-zA-Z0-9_]+\.py$, pas seulement ceux qui ont un hashbang ambigu. Ajoutez cette commande à la %prepsection ou à la fin de la %installsection.
			
Pour plus d'informations, voir Handling hashbangs in Python scripts.
(BZ#1583620)
Des changements notables ont été apportés à la PHP
					Red Hat Enterprise Linux 8 est distribué avec PHP 7.2. Cette version introduit les changements majeurs suivantsPHP 5.4, disponibles dans RHEL 7 :
				
- 
						
PHPutilise FastCGI Process Manager (FPM) par défaut (sans danger pour une utilisation avec un threadedhttpd) - 
						Les variables 
php_valueetphp-flagne doivent plus être utilisées dans les fichiers dehttpdconfiguration ; elles doivent plutôt être définies dans la configuration du pool :/etc/php-fpm.d/*.conf - 
						
PHPles erreurs de script et les avertissements sont enregistrés dans le/var/log/php-fpm/www-error.logfichier au lieu de/var/log/httpd/error.log - 
						Lorsque vous changez la variable de configuration de PHP
max_execution_time, lehttpdProxyTimeoutparamètre doit être augmenté pour correspondre à la variable de configuration de PHP - 
						L'utilisateur exécutant les 
PHPscripts est maintenant configuré dans la configuration du pool FPM (le/etc/php-fpm/d/www.conffichier ; l'apacheutilisateur est par défaut) - 
						Le 
php-fpmservice doit être redémarré après un changement de configuration ou après l'installation d'une nouvelle extension 
Les extensions suivantes ont été supprimées :
- 
						
aspell - 
						
mysql(notez que les extensionsmysqlietpdo_mysqlsont toujours disponibles, fournies parphp-mysqlndforfait) - 
						
zip - 
						
memcache 
(BZ#1580430, BZ#1691688)
Des changements notables ont été apportés à la Ruby
					RHEL 8 fournitRuby 2.5, qui introduit de nombreuses nouvelles fonctionnalités et améliorations Ruby 2.0.0disponibles dans RHEL 7. Parmi les changements notables, mentionnons :
				
- Un collecteur d'ordures incrémentiel a été ajouté.
 - 
						La 
Refinementssyntaxe a été ajoutée. - Les symboles sont maintenant ramassés à la poubelle.
 - 
						Les 
$SAFE=2niveaux de$SAFE=3sécurité sont maintenant obsolètes. - 
						Les classes 
FixnumetBignumet ont été unifiées dans laIntegerclasse. - 
						Les performances ont été améliorées en optimisant la 
Hashclasse, en améliorant l'accès aux variables d'instance, et laMutexclasse étant plus petite et plus rapide. - Certaines anciennes API ont été dépréciées.
 - 
						Les bibliothèques groupées, telles que 
RubyGemsRake,RDoc,Psych,Minitest, ettest-unitont été mises à jour. - 
						D'autres bibliothèques, telles que 
mathn,, etXMLRPCqui étaient précédemment distribuées avecRuby, sont obsolètes ou ne sont plus incluses. - 
						Le schéma de 
SemVerversionnement est maintenant utilisé pour leRubyversionnement. 
(BZ#1648843)
Des changements notables ont été apportés à la Perl
					Perl 5.26distribué avec RHEL 8, introduit les modifications suivantes par rapport à la version disponible dans RHEL 7 :
				
- 
						
Unicode 9.0est maintenant supporté. - 
						Nouveau
op-entry,loading-fileet lesloaded-fileSystemTapsondes sont fournies. - Le mécanisme Copy-on-write est utilisé lors de l'assignation des scalaires pour améliorer les performances.
 - 
						Le 
IO::Socket::IPmodule de gestion transparente des prises IPv4 et IPv6 a été ajouté. - 
						Le 
Config::Perl::Vmodule permettant d'accéder auxperl -Vdonnées de manière structurée a été ajouté. - 
						Un nouveau 
perl-App-cpanminuspaquet a été ajouté, qui contient l'cpanmutilitaire permettant d'obtenir, d'extraire, de construire et d'installer des modules depuis le référentiel Comprehensive Perl Archive Network (CPAN). - 
						Le répertoire 
.courant a été supprimé du chemin de recherche du@INCmodule pour des raisons de sécurité. - 
						L'
doinstruction retourne maintenant un avertissement de suppression lorsqu'elle ne charge pas un fichier en raison du changement de comportement décrit ci-dessus. - 
						L'
do subroutine(LIST)appel n'est plus pris en charge et entraîne une erreur de syntaxe. - 
						Les hashes sont maintenant randomisés par défaut. L'ordre dans lequel les clés et les valeurs sont retournées d'un hachage change à chaque 
perlexécution. Pour désactiver la randomisation, réglez la variable d'PERL_PERTURB_KEYSenvironnement sur0. - 
						Les caractères littéraux 
{non évités dans les modèles d'expression régulière ne sont plus autorisés. - 
						La prise en charge de la portée lexicale de la 
$_variable a été supprimée. - 
						L'utilisation de l'
definedopérateur sur un tableau ou un hachage entraîne une erreur fatale. - 
						L'importation de fonctions à partir du 
UNIVERSALmodule entraîne une erreur fatale. - 
						Les 
find2perloutils et lespstructoutils ont été supprimésc2ph.s2pa2p - 
						L'
${^ENCODING}installation a été enlevée. Le mode par défaut deencodingpragma n'est plus supporté. Pour écrire du code source dans un autre encodageUTF-8, utilisez l'Filteroption de l'encodage. - 
						L'
perlemballage est maintenant aligné avec l'amont. Leperlpaquet installe également les modules de base, tandis que l'/usr/bin/perlinterpréteur est fourni par leperl-interpreterpaquet. Dans les versions précédentes, leperlpaquet ne comprenait qu'un interpréteur minimal, alors que leperl-corepaquet comprenait à la fois l'interpréteur et les modules de base. 
(BZ#1511131)
Node.js nouveau dans RHEL 8
					Node.jsune plate-forme de développement de logiciels permettant de créer des applications réseau rapides et évolutives dans le langage de programmation JavaScript, est fournie pour la première fois dans RHEL. Auparavant, il n'était disponible que sous la forme d'une collection de logiciels. RHEL 8 fournit Node.js 10.
				
(BZ#1622118)
Changements notables dans SWIG
RHEL 8 inclut la version 3.0 du SWIG (Simplified Wrapper and Interface Generator), qui offre de nombreuses nouvelles fonctionnalités, améliorations et corrections de bugs sur la version 2.0 distribuée dans RHEL 7. Plus particulièrement, le support de la norme C+++11 a été implémenté. SWIG supporte maintenant aussi Go 1.6, PHP 7. Octave 4.2, et Python 3.5.
(BZ#1660051)
Changements notables dans Apache httpd
					RHEL 8 est distribué avec le serveur HTTP Apache 2.4.37. Cette version introduit les changements suivants httpddisponibles dans RHEL 7 :
				
- 
						Le support HTTP/2 est maintenant fourni par le 
mod_http2paquet, qui fait partie duhttpdmodule. - 
						Le provisionnement et le renouvellement automatisés des certificats TLS à l'aide du protocole ACME (Automatic Certificate Management Environment) sont désormais pris en charge avec le 
mod_mdpackage (à utiliser avec les fournisseurs de certificats tels queLet’s Encrypt) - 
						Le serveur HTTP Apache prend désormais en charge le chargement des certificats TLS et des clés privées à partir de jetons de sécurité matérielle directement depuis les 
PKCS#11modules. Par conséquent, unemod_sslconfiguration peut maintenant utiliser desPKCS#11URLs pour identifier la clé privée TLS et, en option, le certificat TLS dans lesSSLCertificateFiledirectivesSSLCertificateKeyFileet. - 
						Le module multiprocesseur (MPM) configuré par défaut avec le serveur HTTP Apache est passé d'un modèle multiprocesseur à fourche (connu sous le nom de 
prefork) à un modèle multithread à hautes performances,event. Tous les modules tiers qui ne sont pas sécurisés par un filetage doivent être remplacés ou retirés. Pour modifier le MPM configuré, éditez le/etc/httpd/conf.modules.d/00-mpm.conffichier. Voir la page dehttpd.conf(5)manuel pour plus d'informations. 
				Pour plus d'informations sur httpdSetting up the Apache HTTP web server.
			
(BZ#1632754, BZ#1527084, BZ#1581178)
Le serveur nginxweb nouveau dans RHEL 8
					RHEL 8 introduit nginx 1.14un serveur web et proxy supportant HTTP et d'autres protocoles, avec un accent sur la haute simultanéité, la performance et la faible utilisation de la mémoire. nginxétait auparavant disponible uniquement sous forme de collection de logiciels.
				
				Le serveur nginxWeb prend désormais en charge le chargement des clés privées TLS à partir de jetons de sécurité matérielle directement à partir des PKCS#11modules. Par conséquent, une nginxconfiguration peut utiliser des PKCS#11URLs pour identifier la clé privée TLS dans la ssl_certificate_keydirective.
			
(BZ#1545526)
Serveurs de base de données dans RHEL 8
RHEL 8 fournit les serveurs de base de données suivants :
- 
						
MySQL 8.0un serveur de base de données SQL multi-utilisateurs et multi-threads. Il se compose du démonMySQLserveur,mysqld, et de nombreux programmes clients. - 
						
MariaDB 10.3un serveur de base de données SQL multi-utilisateurs et multi-threads. En pratique,MariaDBest compatible binairement avecMySQL. - 
						
PostgreSQL 10etPostgreSQL 9.6, un système avancé de gestion de base de données relationnelle-objet (SGBD). - 
						
Redis 5un magasin de valeur clé avancé. Il est souvent appelé serveur de structure de données parce que les clés peuvent contenir des chaînes de caractères, des hachages, des listes, des ensembles et des ensembles triés.Redisest fourni pour la première fois dans RHEL. 
				Notez que le serveur de base de données NoSQL MongoDBn'est pas inclus dans RHEL 8.0 car il utilise la Server Side Public License (SSPL).
			
(BZ#1647908)
Des changements notables ont été apportés à la MySQL 8.0
					RHEL 8 est distribué avecMySQL 8.0, qui fournit, par exemple, les extensions suivantes :
				
- 
						
MySQLintègre désormais un dictionnaire de données transactionnelles, qui stocke des informations sur les objets de la base de données. - 
						
MySQLsupporte maintenant les rôles, qui sont des ensembles de privilèges. - 
						Le jeu de caractères par défaut a été modifié de 
latin1utf8mb4. à . - La prise en charge des expressions courantes des tables, à la fois non récursives et récursives, a été ajoutée.
 - 
						
MySQLprend désormais en charge les fonctions de la fenêtre, qui effectuent un calcul pour chaque ligne à partir d'une requête, en utilisant les lignes liées. - 
						
InnoDBsupporte maintenant les optionsNOWAITetSKIP LOCKEDavec les instructions de verrouillage en lecture. - Les fonctions liées aux SIG ont été améliorées.
 - La fonctionnalité JSON a été améliorée.
 - 
						Les nouveaux 
mariadb-connector-cprogiciels fournissent une bibliothèque client commune pourMySQLetMariaDB. Cette bibliothèque est utilisable avec n'importe quelle version des serveursMySQLet desMariaDBbases de données. En conséquence, l'utilisateur peut connecter une version d'une application à n'importe lequel desMariaDBserveurs distribués avec RHEL 8MySQL. 
				De plus, le MySQL 8.0serveur distribué avec RHEL 8 est configuré pour être utilisé comme plug-in d'authentification par défaut car les outils clients et les bibliothèques de RHEL 8 sont incompatibles avec la caching_sha2_passwordméthode qui est utilisée par défaut dans la version amontMySQL 8.0.
			
				Pour modifier le plug-in d'authentification par défautcaching_sha2_password, modifiez le /etc/my.cnf.d/mysql-default-authentication-plugin.cnffichier comme suit :
			
[mysqld] default_authentication_plugin=caching_sha2_password
[mysqld]
default_authentication_plugin=caching_sha2_password
(BZ#1649891, BZ#1519450, BZ#1631400)
Des changements notables ont été apportés à la MariaDB 10.3
					MariaDB 10.3 offre de nombreuses nouveautés par rapport à la version 5.5 distribuée dans RHEL 7. Certains des changements les plus notables sont :
				
- 
						
MariaDB Galera Clusterun cluster synchrone multi-maîtres, est maintenant une partie standard deMariaDB. - 
						
InnoDBest utilisé comme moteur de stockage par défaut au lieu deXtraDB. - Expressions courantes des tables
 - Tables version système
 - 
						
FORboucles - Colonnes invisibles
 - Séquences
 - 
						Instant 
ADD COLUMNpourInnoDB - Compression de colonne indépendante du moteur de stockage
 - Réplication parallèle
 - Réplication multi-sources
 
				De plus, les nouveaux mariadb-connector-cprogiciels fournissent une bibliothèque client commune pour MySQLet MariaDB. Cette bibliothèque est utilisable avec n'importe quelle version des serveurs MySQLet des MariaDBbases de données. En conséquence, l'utilisateur peut connecter une version d'une application à n'importe lequel des MariaDBserveurs distribués avec RHEL 8MySQL.
			
Voir aussi Using MariaDB on Red Hat Enterprise Linux 8.
(BZ#1637034, BZ#1519450)