Guía completa de las extensiones de PHP 8.4, qué hace cada paquete y cuáles necesitas realmente
![]()
Cuando se instala PHP en un servidor Debian o Ubuntu, el gestor de paquetes ofrece una lista enorme de extensiones bajo el prefijo php8.4-*. Para quien administra sistemas por primera vez —o incluso para administradores experimentados que se enfrentan a un apt list interminable— puede resultar abrumador saber qué hace cada una y, sobre todo, cuáles instalar de verdad.
Este artículo repasa las extensiones más habituales de PHP 8.4, agrupadas por función, y cierra con una serie de recomendaciones prácticas sobre qué combinaciones evitar.
El núcleo: lo que hace funcionar a PHP
Antes de hablar de extras, conviene distinguir los paquetes que forman la base de cualquier instalación:
php8.4-cli: el intérprete de PHP para línea de comandos, imprescindible para scripts y tareas programadas (cron).php8.4-fpm: el FastCGI Process Manager, la forma estándar de servir PHP junto a Nginx o Apache.php8.4-cgi: el binario CGI clásico, hoy menos usado que FPM pero aún presente en algunos entornos.php8.4-common: ficheros y módulos compartidos por todos los SAPI (CLI, FPM, CGI).php8.4-dev: cabeceras y herramientas de compilación (phpize), necesarias solo si se van a compilar extensiones desde código fuente.php8.4-phpdbg: un depurador interactivo integrado, distinto de Xdebug.
Conectividad con bases de datos
PHP soporta prácticamente cualquier motor de base de datos mediante extensiones dedicadas:
php8.4-mysql: cliente para MySQL y MariaDB, el más usado con diferencia.php8.4-pgsql: cliente para PostgreSQL.php8.4-sqlite3: cliente para bases de datos SQLite embebidas.php8.4-odbc: acceso genérico a bases de datos vía ODBC.php8.4-sybaseephp8.4-interbase: drivers para Sybase/MS SQL y Firebird/InterBase, hoy de uso muy residual.php8.4-pq: binding alternativo a libpq para PostgreSQL, con soporte asíncrono.php8.4-mongodb: driver oficial para MongoDB.php8.4-solr: cliente para Apache Solr, el motor de búsqueda.
Caché y almacenamiento en memoria
Este grupo es clave para el rendimiento de cualquier aplicación con tráfico real:
php8.4-opcache: cachea el bytecode compilado de PHP para evitar recompilar en cada petición. Prácticamente obligatoria en producción.php8.4-apcu: caché de datos de usuario en memoria compartida.php8.4-redis: cliente para Redis, usado tanto para caché como para colas y sesiones.php8.4-memcacheyphp8.4-memcached: dos implementaciones distintas e independientes del cliente de Memcached.php8.4-igbinary: un serializador binario más rápido y compacto que el nativo, usado a menudo junto a Redis o Memcached.php8.4-msgpack: serialización en formato MessagePack.php8.4-yac: otra caché de usuario en memoria compartida, menos común.
Procesamiento de texto y formatos
php8.4-xml,php8.4-xmlrpcyphp8.4-xsl: soporte para XML, llamadas XML-RPC y transformaciones XSLT.php8.4-soap: cliente y servidor SOAP.php8.4-mbstring: manejo correcto de cadenas multibyte (UTF-8, etc.); casi imprescindible en cualquier aplicación moderna.php8.4-intl: funciones de internacionalización basadas en ICU (formateo de fechas, monedas, números según el idioma).php8.4-tidy: limpieza y reparación de HTML mal formado.php8.4-yaml: parseo de archivos YAML.php8.4-enchantyphp8.4-pspell: dos librerías distintas de corrección ortográfica.php8.4-mailparse: parseo de correos electrónicos en formato MIME.php8.4-ast: genera el árbol de sintaxis abstracta (AST) del código PHP, usado por herramientas de análisis estático.
Compresión y archivos
php8.4-zip: creación y lectura de archivos ZIP.php8.4-bz2: compresión Bzip2.php8.4-zstd: compresión Zstandard, más moderna y rápida que las anteriores.
Procesamiento de imágenes
php8.4-gd: la librería gráfica clásica de PHP.php8.4-imagick: binding de ImageMagick, más potente y flexible que GD.php8.4-gmagick: binding de GraphicsMagick, alternativa a ImageMagick.
Matemáticas y estructuras de datos
php8.4-bcmath: matemáticas de precisión arbitraria, útil para cálculos financieros.php8.4-gmp: aritmética de números muy grandes (GNU Multiple Precision).php8.4-ds: estructuras de datos eficientes (Vector, Map, Set, Stack) más rápidas que los arrays nativos en ciertos casos de uso.
Seguridad y cifrado
php8.4-gnupg: cifrado y firma digital con GPG.php8.4-mcrypt: extensión de cifrado obsoleta, mantenida solo por compatibilidad con código antiguo.php8.4-ssh2: conexiones SSH2 desde PHP.php8.4-uuid: generación de identificadores UUID.
Redes y protocolos
php8.4-curl: el cliente HTTP más usado en PHP.php8.4-http: una extensión HTTP más completa (PECL http), con funcionalidades adicionales a cURL.php8.4-ldap: cliente LDAP, típico en entornos con Active Directory.php8.4-snmp: cliente SNMP, para monitorización de red.php8.4-smbclient: cliente para compartir archivos vía SMB/CIFS.php8.4-amqp: cliente AMQP, habitual con RabbitMQ.php8.4-stomp: cliente para el protocolo de mensajería STOMP.php8.4-gearman: cliente para Gearman, un sistema de procesamiento distribuido de trabajos.php8.4-zmq: cliente para ZeroMQ.php8.4-oauth: implementación del protocolo OAuth.php8.4-raphf: librería base de gestión de recursos, dependencia interna dephp8.4-http.
Depuración y desarrollo
php8.4-xdebug: el depurador y profiler más usado en PHP, con breakpoints, stack traces y cobertura de código.php8.4-pcov: una alternativa a Xdebug centrada solo en cobertura de código, mucho más ligera.php8.4-excimer: un profiler de muy bajo overhead, desarrollado originalmente por Wikimedia.php8.4-uopz: permite modificar funciones y clases en tiempo de ejecución, útil para mocking en tests.php8.4-uploadprogress: permite seguir el progreso de subida de archivos grandes.
Extensiones de nicho
php8.4-inotify: acceso al sistema inotify de Linux para monitorizar cambios en archivos.php8.4-rrd: interfaz con RRDtool, usado en herramientas de gráficas de series temporales como Cacti o Nagios.php8.4-maxminddb: lectura de bases de datos GeoIP de MaxMind, para geolocalización por IP.php8.4-libvirt-php: binding para libvirt, permite gestionar máquinas virtuales (KVM, Xen, etc.) desde PHP.php8.4-ps: consulta de información de procesos del sistema.php8.4-psr: interfaces PSR base, dependencia interna de otras extensiones PECL.
¿Qué pasa si se instalan todas a la vez?
Instalar el paquete de una extensión no siempre significa que se active automáticamente en todos los contextos (CLI, FPM, etc.): en Debian y Ubuntu, cada extensión activa su propio fichero .ini en /etc/php/8.4/mods-available/ y se enlaza a los SAPI correspondientes mediante phpenmod. Es decir, se pueden tener instaladas sin que estén realmente cargadas en producción.
Dicho esto, hay varios puntos a vigilar si se instala todo el catálogo:
Xdebug en producción es el error más frecuente y más grave. Instrumenta cada función que se ejecuta, lo que puede ralentizar PHP entre 2 y 10 veces. Nunca debería estar activo fuera de un entorno de desarrollo. Además, compite con pcov por el mismo mecanismo de cobertura de código: tener ambos activos simultáneamente puede dar resultados inconsistentes.
Hay extensiones redundantes. memcache y memcached son dos clientes distintos para el mismo servicio; gd, imagick y gmagick cubren el mismo terreno con distinto nivel de potencia; enchant y pspell hacen lo mismo para corrección ortográfica. No generan conflictos técnicos entre sí, pero añaden peso innecesario y pueden generar dudas sobre cuál usar en el código.
uopz es peligrosa fuera de testing. Al permitir modificar funciones y clases en caliente, si se activa por error en un entorno de producción puede alterar el comportamiento del código de forma silenciosa y muy difícil de rastrear.
El consumo de recursos aumenta con cada extensión cargada. No es un problema grave con unas pocas, pero con setenta extensiones activas a la vez, el arranque de cada proceso PHP-FPM es algo más lento y cada worker consume algo más de memoria. En servidores con mucho tráfico y muchos workers concurrentes, esto acaba notándose.
Más código cargado es, en teoría, más superficie de ataque, aunque en la práctica el riesgo es bajo mientras el sistema se mantenga actualizado.
Recomendación práctica
La estrategia más razonable es instalar solo lo que la aplicación necesita, y en caso de instalar el catálogo completo por comodidad, desactivar explícitamente lo que no corresponda al entorno:
bash
php -m # ver qué extensiones están activas
phpdismod xdebug uopz pcov # desactivar herramientas de desarrollo en producción
php --ini # comprobar qué ficheros .ini se están cargandoEn un servidor de desarrollo, en cambio, tiene sentido mantener activos xdebug o pcov para depuración y cobertura de tests, y desactivarlos justo antes de desplegar a producción.
