ClickCease PHP Erweiterter Lebenszyklus-Support: Ein genauerer Blick - TuxCare

Abonnieren Sie unseren beliebten Newsletter

Schließen Sie sich 4.500+ Linux- und Open-Source-Experten an!

2x im Monat. Kein Spam.

PHP Erweiterte Lebenszyklusunterstützung: Ein genauerer Blick

Joao Correia

August 15, 2022 - Technischer Evangelist

PHP Extended Lifecycle Support bietet Sicherheitsupdates und -versionen, wenn Sie daran interessiert sind, die Kompatibilität mit bestehendem PHP-Code aufrechtzuerhalten und gleichzeitig gegen die neuesten Sicherheitslücken auf Sprachebene geschützt zu sein.

 

PHP Extended Lifecycle Support ist ebenfalls eine sehr flexible Lösung und bietet Ihnen die Möglichkeit, verschiedene PHP-Versionen nebeneinander auf demselben System laufen zu lassen. So können Sie z. B. verschiedene Websites problemlos auf unterschiedlichen PHP-Versionen laufen lassen.

Schauen wir uns an, wie dies erreicht wird.

Wenn Sie eine aktualisierte Version von PHP über PHP ELS mit dem regulären Update-Tool Ihres Systems (yum, dnf, apt) bereitstellen, wird die neue Version unter "/opt/alt/php[Version]/" installiert. Dies bedeutet, dass alle Module, Konfigurationen und zusätzlichen Dateien, die zu dieser Version gehören, in diesem Pfad enthalten sind. Verschiedene PHP-Versionen haben jeweils ihren eigenen Pfad und können ohne Probleme auf demselben System koexistieren. Nachfolgend finden Sie den Ort aller relevanten Dateien, falls Sie Änderungen vornehmen möchten.

Die bin Dateien:

[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

 

Module und pecl-Erweiterungen:

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

 

Ausführen von Code in einer bestimmten Version über die CLI:

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

 

Speicherort der ini-Konfigurationsdateien :

[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

 

Speicherort der Datei default.ini:

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

 

Auflistung aktivierter Module für eine bestimmte Version:

[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]

 

Aktivieren eines Moduls über die 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]

 

Jede Version ist völlig eigenständig, und eine Änderung der Konfiguration in einer Version wirkt sich nicht auf die anderen aus, was in Hosting-Umgebungen eine gewünschte Funktion ist.

Wir würden uns über Ihr Feedback und Ihre Vorschläge freuen, wie wir den PHP Extended Lifecycle Support verbessern können, um Ihren Bedürfnissen oder Anwendungsfällen besser gerecht zu werden.

Möchten Sie das Patchen von Sicherheitslücken ohne Kernel-Neustart, Systemausfallzeiten oder geplante Wartungsfenster automatisieren?

Erfahren Sie mehr über Live-Patching mit TuxCare

Werden Sie ein TuxCare-Gastautor

Los geht's

E-Mail

Beitreten

4,500

Linux & Open Source
Fachleute!

Abonnieren Sie
unseren Newsletter