ClickCease PHP Extended Lifecycle Support : Un regard plus approfondi - TuxCare

Rejoignez notre populaire bulletin d'information

Rejoignez 4 500+ professionnels de Linux et de l'Open Source !

2 fois par mois. Pas de spam.

Support étendu du cycle de vie de PHP : Un regard plus approfondi

Joao Correia

15 août 2022 - Évangéliste technique

PHP Extended Lifecycle Support fournit des mises à jour et des versions de sécurité si vous souhaitez maintenir la compatibilité avec le code PHP existant tout en restant protégé contre les dernières vulnérabilités du langage.

 

PHP Extended Lifecycle Support est également une solution très flexible, qui vous permet d'exécuter différentes versions de PHP, côte à côte, sur le même système. Cela vous permet, par exemple, d'avoir différents sites Web fonctionnant sur différentes versions de PHP sans problème.

Voyons comment y parvenir.

Lorsque vous déployez une version mise à jour de PHP via PHP ELS, en utilisant l'outil de mise à jour habituel de votre système (yum, dnf, apt), la nouvelle version sera installée sous "/opt/alt/php[version]/". Cela signifie que tous les modules, configurations et fichiers supplémentaires relatifs à cette version seront contenus dans ce chemin. Les différentes versions de PHP auront chacune leur propre chemin et pourront coexister sans problème sur le même système. Vous trouverez ci-dessous l'emplacement de tous les fichiers pertinents, si vous souhaitez effectuer des modifications.

Le site bin sont des fichiers :

[root@localhost ~]# ll /opt/alt/php[version]/usr/bin/
bytekit          hphpa            pear             pecl             phar.phar        
phpcb            php-config       phpcpd           phploc           phpunit-skelgen
dbunit           lsphp            peardev          phar             php              
php-cgi          phpcov           phpize           phpunit          ppw

 

Modules et extensions pecl:

ls /opt/alt/php[version]/usr/lib64/php/modules/
ZendGuardLoader.so  imagick.so         oci8.so          stem.so
amqp.so             imap.so            odbc.so          stomp.so
apc.so              inclued.so         opcache.so       suhosin.so
apcu.so             inotify.so         pdf.so           sybase_ct.so
apm.so              interbase.so       pdo.so           sysvmsg.so
ares.so             intl.so            pdo_dblib.so     sysvsem.so
bcmath.so           ioncube_loader.so  pdo_firebird.so  sysvshm.so
big_int.so          ixed.5.4.lin       pdo_mysql.so     tideways.so
bitset.so           jsmin.so           pdo_oci.so       tidy.so
brotli.so           json.so            pdo_odbc.so      timezonedb.so
bz2_filter.so       ldap.so            pdo_pgsql.so     trader.so
dba.so              libevent.so        pdo_sqlite.so    translit.so
dbase.so            libsodium.so       pgsql.so         uploadprogress.so
dbx.so              luasandbox.so      phalcon.so       uri_template.so
dom.so              lzf.so             phar.so          uuid.so
doublemetaphone.so  mailparse.so       posix.so         wddx.so
eaccelerator.so     mbstring.so        propro.so        weakref.so
eio.so              mcrypt.so          pspell.so        xcache.so
enchant.so          memcache.so        quickhash.so     xcache_3.so
fileinfo.so         memcached.so       radius.so        xdebug.so
functional.so       mongo.so           raphf.so         xhprof.so
gd.so               mongodb.so         rar.so           xmlreader.so
gender.so           msgpack.so         recode.so        xmlrpc.so
geoip.so            mssql.so           redis.so         xmlwriter.so
geos.so             mysql.so           rsync.so         xrange.so
gmagick.so          mysqli.so          snmp.so          xsl.so
gnupg.so            mysqlnd.so         soap.so          yaf.so
haru.so             ncurses.so         sockets.so       yaml.so
hidef.so            nd_mysql.so        solr.so          yaz.so
htscanner.so        nd_mysqli.so       spl_types.so     zip.so
http.so             nd_pdo_mysql.so    ssh2.so          zmq.so
igbinary.so         oauth.so           stats.so

 

Exécution du code sur une version spécifique via le CLI :

[root@localhost ~]# /opt/alt/php[version]/usr/bin/php helloworld.php 
Hello, World!

 

Emplacement des fichiers de configuration ini :

[root@localhost ~]# ls /opt/alt/php[version]/etc/php.d.all/
40-leveldb.ini        mailparse.ini     redis.ini
40-snuffleupagus.ini  mbstring.ini      rrd.ini
40-vld.ini            mcrypt.ini        snmp.ini
amqp.ini              memcache.ini      snuffleupagus-default.rules
apcu.ini              memcached.ini     soap.ini
bcmath.ini            mongodb.ini       sockets.ini
dba.ini               mysqli.ini        sodium.ini
dbase.ini             mysqlnd.ini       solr.ini
dom.ini               nd_mysqli.ini     sourceguardian.ini
eio.ini               nd_pdo_mysql.ini  sqlsrv.ini
enchant.ini           newrelic.ini      ssh2.ini
ffmpeg.ini            oauth.ini         stats.ini
fileinfo.ini          oci8.ini          swoole.ini
gd.ini                odbc.ini          sysvmsg.ini
gearman.ini           opcache.ini       sysvsem.ini
gender.ini            pdf.ini           sysvshm.ini
geoip.ini             pdo.ini           tideways_xhprof.ini
geos.ini              pdo_dblib.ini     tidy.ini
gmagick.ini           pdo_firebird.ini  timezonedb.ini
gnupg.ini             pdo_mysql.ini     trader.ini
grpc.ini              pdo_oci.ini       uploadprogress.ini
http.ini              pdo_odbc.ini      uuid.ini
igbinary.ini          pdo_pgsql.ini     vips.ini
imagick.ini           pdo_sqlite.ini    xdebug.ini
imap.ini              pdo_sqlsrv.ini    xmlreader.ini
inotify.ini           pgsql.ini         xmlrpc.ini
intl.ini              phalcon4.ini      xmlwriter.ini
ioncube_loader.ini    phar.ini          xsl.ini
jsmin.ini             posix.ini         yaml.ini
json.ini              propro.ini        yaz.ini
ldap.ini              pspell.ini        zip.ini
luasandbox.ini        psr.ini           zmq.ini
lzf.ini               raphf.ini

 

Emplacement du fichier default.ini:

ls /opt/alt/php[version]/etc/php.d/default.ini

 

Liste des modules activés sur une version spécifique :

[root@localhost ~]# /opt/alt/php73/usr/bin/php -m
[PHP Modules]
bz2
calendar
Core
ctype
curl
date
exif
filter
ftp
gettext
gmp
hash
iconv
libxml
openssl
pcntl
pcre
readline
Reflection
session
shmop
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
zlib

[Zend Modules]

 

Activation d'un module par l'intermédiaire du CLI :

[root@localhost ~]# /opt/alt/php73/usr/bin/php -d "extension=igbinary.so" -m
[PHP Modules]
bz2
calendar
Core
ctype
curl
date
exif
filter
ftp
gettext
gmp
hash
iconv
igbinary
libxml
openssl
pcntl
pcre
readline
Reflection
session
shmop
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
zlib

[Zend Modules]

 

Chaque version est entièrement autonome, et la modification des configurations de l'une n'aura pas d'incidence sur les autres, ce qui est une caractéristique souhaitée dans les environnements d'hébergement.

Nous serions ravis d'entendre vos commentaires et vos suggestions sur la façon dont nous pouvons améliorer le support étendu du cycle de vie de PHP pour mieux répondre à vos besoins ou à vos cas d'utilisation.

Vous cherchez à automatiser la correction des vulnérabilités sans redémarrage du noyau, temps d'arrêt du système ou fenêtres de maintenance programmées ?

Découvrez le Live Patching avec TuxCare

Devenez rédacteur invité de TuxCare

Commencer

Courrier

Rejoindre

4,500

Professionnels de Linux et de l'Open Source
!

S'abonner à
notre lettre d'information