🚀 Nueva exigencia de PHP en Moodle: cómo resolver el error de Composer en Plesk
En las versiones más recientes de Moodle, el archivo composer.json ahora exige PHP ≥ 8.2.
Si intentas ejecutar:
composer install --no-dev --classmap-authoritativepuede aparecer un error como:
Root composer.json requires php >=8.2.0 but your php version (8.1.x) does not satisfy that requirement.
Aunque tu Moodle funcione perfectamente en el navegador, Composer puede fallar. ¿Por qué?
🔎 El problema real: PHP Web ≠ PHP CLI
En servidores administrados con Plesk, es muy común tener varias versiones de PHP instaladas al mismo tiempo.
Por ejemplo:
| Entorno | Versión |
|---|---|
| PHP FPM (web) | 8.4.18 ✅ |
| PHP CLI (terminal) | 8.1.x ❌ |
Moodle puede estar funcionando con PHP 8.4 en producción, pero Composer usa la versión CLI del sistema (8.1), lo que genera el conflicto.
🛠 Cómo solucionarlo correctamente
✅ 1️⃣ Verificar qué versión usa CLI
php -vSi muestra 8.1.x, ahí está el problema.
✅ 2️⃣ Usar directamente el PHP correcto de Plesk
En vez de cambiar el PHP global del sistema (lo cual puede romper otros sitios), ejecuta Composer con la versión correcta:
/opt/plesk/php/8.4/bin/php /usr/lib/plesk-9.0/composer.phar install --no-dev --classmap-authoritativeDe esta manera:
- Composer usa PHP 8.4
- Coincide con la versión de producción
- No se afecta ningún otro dominio
✅ 3️⃣ Verificar extensiones necesarias
Antes de ejecutar Composer, revisa que PHP tenga las extensiones requeridas:
/opt/plesk/php/8.4/bin/php -mMoodle necesita al menos:
- curl
- zip
- gd
- dom
- simplexml
- xml
- xmlreader
- intl
- mbstring
- opcache
- mysqli
Si falta alguna, puedes instalarla desde Plesk:
plesk installer --select-release-current --install-component php8.4-nombre_extension⚠️ Qué NO hacer
❌ No usar:
composer install --ignore-platform-reqsEso solo oculta el problema y puede romper Moodle después.
❌ No cambiar update-alternatives del sistema si estás en un servidor con múltiples clientes.
🎯 Recomendación adicional
En servidores Plesk:
Siempre ejecuta Composer así:
/opt/plesk/php/VERSION/bin/php /usr/lib/plesk-9.0/composer.pharAsí garantizas coherencia entre:
- Entorno web
- CLI
- Dependencias instaladas
🧠 Conclusión
La “novedad” no es realmente un bug de Moodle, sino una consecuencia natural de la evolución del ecosistema PHP:
- Moodle exige versiones modernas.
- Composer valida estrictamente los requisitos.
- Plesk permite múltiples versiones simultáneas.
El problema aparece cuando CLI y FPM no coinciden. Una vez alineadas las versiones, la instalación funciona sin inconvenientes. Si administras múltiples instancias de Moodle en Plesk, este pequeño detalle puede ahorrarte horas de debugging.
Saludos! Marchelo2212