Cómo consultar la versión de PHP y los módulos instalados

Conocer la versión de PHP y los módulos instalados permite comprobar si un sitio cumple sus requisitos, diagnosticar errores y comparar la configuración antes o después de una migración. En un servidor con varias versiones, no alcanza con mirar un dato general: hay que verificar el entorno que realmente ejecuta el dominio.

Consultar la versión asignada desde cPanel

En servidores con EasyApache 4, ingresá a Software → MultiPHP Manager. La tabla muestra los dominios de la cuenta y la versión asignada a cada uno. Si aparece inherit, el dominio está heredando una configuración superior o el valor predeterminado del servidor.

Esta vista sirve para conocer la asignación, pero una regla heredada, un archivo de configuración o una diferencia entre entornos puede justificar una comprobación directa desde el sitio. La guía para elegir o cambiar la versión de PHP en cPanel explica cómo modificarla de manera segura.

Comprobación mínima mediante un archivo temporal

Si solo necesitás confirmar la versión que atiende una petición web, podés crear temporalmente un archivo con un nombre difícil de adivinar dentro de la raíz del dominio:

<?php
echo 'PHP: ' . PHP_VERSION;

Abrilo desde el navegador, anotá el resultado y eliminalo inmediatamente. Esta prueba entrega menos información que phpinfo() y resulta suficiente para confirmar la versión efectiva.

Consultar extensiones cargadas

Para saber si PHP tiene cargadas extensiones como curl, mysqli, mbstring, gd o zip, podés utilizar temporalmente:

<?php
header('Content-Type: text/plain; charset=UTF-8');
echo 'PHP: ' . PHP_VERSION . PHP_EOL;
print_r(get_loaded_extensions());

Buscá el nombre de la extensión que requiere la aplicación. Que una extensión esté instalada para una rama de PHP no garantiza que también esté disponible en otra. Después de cambiar de versión conviene repetir la verificación.

Cuándo utilizar phpinfo()

La función phpinfo() muestra la versión, los módulos cargados, el tipo de ejecución, los archivos de configuración, las rutas y los valores locales y generales de numerosas directivas:

<?php
phpinfo();

Es una herramienta útil, pero también puede revelar rutas internas, variables del entorno, cabeceras y detalles del servidor. No dejes un archivo llamado phpinfo.php, info.php o similar publicado. Crealo solo durante la prueba, evitá compartir su URL y borralo al terminar.

Qué datos conviene revisar en phpinfo

  • PHP Version: versión que ejecuta esa petición.
  • Server API: modo o interfaz mediante la cual se ejecuta PHP.
  • Loaded Configuration File: archivo de configuración cargado.
  • Scan this dir for additional .ini files: directorio con configuraciones adicionales.
  • Additional .ini files parsed: archivos complementarios procesados.
  • Local Value y Master Value: valor aplicado al sitio y valor general de la directiva.
  • Secciones de módulos: confirman extensiones y sus parámetros.

Si una aplicación indica que falta una extensión, verificá primero que estés mirando la versión y el dominio correctos. El nombre mostrado por la aplicación también puede diferir del paquete utilizado internamente por el servidor.

Consultar desde la Terminal o por SSH

Cuando la cuenta tiene Terminal o acceso SSH, estos comandos muestran la versión y los módulos del ejecutable disponible en la consola:

php -v
php -m
php --ini

php -v informa la versión; php -m enumera módulos; y php --ini indica qué archivos de configuración utiliza la consola. Sin embargo, el resultado puede no coincidir con el dominio porque la línea de comandos y el servidor web pueden usar ejecutables o archivos INI diferentes.

Para diagnosticar una página web, la prueba debe ejecutarse desde esa página. Para diagnosticar un cron o comando SSH, hay que comprobar el PHP utilizado por ese proceso.

Cómo verificar una directiva concreta sin mostrar todo

Es preferible consultar solamente el dato necesario con ini_get() en lugar de exponer una página completa de phpinfo. Por ejemplo:

<?php
header('Content-Type: text/plain; charset=UTF-8');
echo 'memory_limit=' . ini_get('memory_limit') . PHP_EOL;
echo 'upload_max_filesize=' . ini_get('upload_max_filesize') . PHP_EOL;
echo 'post_max_size=' . ini_get('post_max_size') . PHP_EOL;
echo 'allow_url_fopen=' . ini_get('allow_url_fopen') . PHP_EOL;

Eliminá también este archivo al finalizar. Si necesitás interpretar la última directiva, consultá para qué sirve allow_url_fopen y cuáles son sus precauciones.

Por qué un cambio de INI puede no verse

Una directiva puede definirse en distintos niveles y no todas admiten modificación por usuario. También puede existir un php.ini, .user.ini o una regla heredada en otra carpeta. En algunos entornos la configuración se actualiza con una pequeña demora debido a la caché de archivos INI o a procesos persistentes.

Desde cPanel, utilizá MultiPHP INI Editor cuando esté habilitado. Seleccioná el dominio exacto, guardá el ajuste y verificá el valor efectivo. Evitá copiar directivas de Internet sin comprobar que sean válidas para la versión y el manejador PHP del servidor.

Qué hacer si falta un módulo

  1. Confirmá la versión usada por el sitio.
  2. Verificá que la aplicación realmente requiera esa extensión.
  3. Comprobá si el módulo aparece en get_loaded_extensions() o phpinfo().
  4. Revisá si otra versión disponible sí lo incluye.
  5. Consultá al proveedor para su instalación o habilitación si no puede administrarse desde la cuenta.

Los usuarios de cPanel normalmente no pueden instalar paquetes del sistema. Cambiar de versión sin revisar compatibilidad puede reemplazar un problema por otro, por lo que siempre conviene respaldar y probar.

Comprobación después de una migración

Al mover un sitio, compará versión, módulos, límites, rutas y tareas programadas entre origen y destino. Este control complementa la guía para migrar un sitio web con base de datos a otro hosting y ayuda a detectar diferencias antes de cambiar el DNS.

Resumen de seguridad

  • Preferí consultas que muestren solamente el dato necesario.
  • No publiques información completa de phpinfo de forma permanente.
  • No envíes capturas con rutas, variables, cookies o datos sensibles sin ocultarlos.
  • Eliminá todos los archivos de diagnóstico al terminar.
  • Verificá por separado el entorno web, la consola y las tareas cron.