ClickCease Soporte extendido del ciclo de vida de PHP: Una mirada más profunda - TuxCare

Únase a nuestro popular boletín

Únase a más de 4.500 profesionales de Linux y el código abierto.

2 veces al mes. Sin spam.

Soporte extendido del ciclo de vida de PHP: Una mirada más profunda

Joao Correia

15 de agosto de 2022 - Evangelista técnico

PHP Extended Lifecycle Support proporciona actualizaciones y versiones de seguridad si está interesado en mantener la compatibilidad con el código PHP existente a la vez que permanece seguro frente a las últimas vulnerabilidades a nivel de lenguaje.

 

PHP Extended Lifecycle Support es también una solución muy flexible, y le proporciona la capacidad de ejecutar diferentes versiones de PHP, una al lado de la otra, en el mismo sistema. Esto le permite tener, por ejemplo, diferentes sitios web que se ejecutan en la parte superior de diferentes versiones de PHP sin problemas.

Veamos cómo se consigue.

Cuando despliega una versión actualizada de PHP a través de PHP ELS, utilizando la herramienta de actualización habitual de su sistema (yum, dnf, apt), la nueva versión se instalará bajo "/opt/alt/php[version]/". Esto significa que todos los módulos, configuraciones y archivos adicionales pertenecientes a esta versión estarán contenidos dentro de esa ruta. Diferentes versiones de PHP tendrán cada una su propia ruta y pueden coexistir sin problemas en el mismo sistema. Abajo encontrará la ubicación de todos los archivos relevantes, en caso de que quiera hacer algún cambio.

La página bin archivos:

[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

 

Módulos y extensiones 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

 

Ejecución de código en una versión específica a través de la CLI:

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

 

Ubicación de los archivos de configuración 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

 

Ubicación de default.ini:

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

 

Listado de módulos habilitados en una versión concreta:

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

 

Habilitación de un módulo a través de la 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]

 

Cada versión es totalmente autónoma, y el cambio de configuración en una de ellas no afectará a las demás, lo que es una característica deseada en los entornos de alojamiento.

Nos encantaría escuchar sus comentarios y sugerencias sobre cómo podemos mejorar PHP Extended Lifecycle Support para satisfacer mejor sus necesidades o casos de uso.

¿Desea automatizar la aplicación de parches de vulnerabilidad sin reiniciar el núcleo, dejar el sistema fuera de servicio o programar ventanas de mantenimiento?

Más información sobre Live Patching con TuxCare

Conviértete en escritor invitado de TuxCare

Empezar

Correo

Únete a

4,500

Profesionales de Linux y código abierto

Suscríbase a
nuestro boletín
Correo

Únete a

4,500

Profesionales de Linux y código abierto

Suscríbase a
nuestro boletín
Cerrar enlace