# 🔧 Fix: Requisitos de Versión PHP

**Fecha:** Noviembre 2024  
**Problema:** El proyecto requiere PHP 8.2+ pero el servidor tiene PHP 8.1.33

---

## ❌ Error Encontrado

```
Problem 1
  - dragonmantank/cron-expression v3.6.0 requires php ^8.2|^8.3|^8.4|^8.5 
    -> your php version (8.1.33) does not satisfy that requirement.
```

**Causa:** Laravel 9.52+ y sus dependencias requieren PHP 8.2+, pero el servidor tiene PHP 8.1.33.

---

## ✅ Solución Implementada

### 1. Priorizar PHP 8.2+ en `find_php_cli()`

```bash
local php_paths=(
  "/opt/cpanel/ea-php82/root/usr/bin/php"  # PHP 8.2 (prioridad 1)
  "/opt/cpanel/ea-php83/root/usr/bin/php"  # PHP 8.3 (prioridad 2)
  "/opt/cpanel/ea-php84/root/usr/bin/php"  # PHP 8.4 (prioridad 3)
  "/opt/cpanel/ea-php81/root/usr/bin/php"  # PHP 8.1 (fallback)
  # ...
)
```

### 2. Usar `--ignore-platform-reqs` si PHP < 8.2

```bash
php_version=$($php_cli -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')
php_major=$(echo $php_version | cut -d. -f1)
php_minor=$(echo $php_version | cut -d. -f2)

if [ "$php_major" -lt 8 ] || ([ "$php_major" -eq 8 ] && [ "$php_minor" -lt 2 ]); then
  echo '⚠️  PHP < 8.2 detectado. Usando --ignore-platform-reqs...'
  composer install --no-interaction --ignore-platform-reqs
else
  composer install --no-interaction
fi
```

---

## 🔍 Verificar Versiones PHP Disponibles en cPanel

```bash
# En el VPS, como root
ls -la /opt/cpanel/ea-php*/

# Debe mostrar algo como:
# /opt/cpanel/ea-php81/
# /opt/cpanel/ea-php82/
# /opt/cpanel/ea-php83/
```

---

## 📋 Cambiar Versión PHP en cPanel

Si PHP 8.2+ está disponible pero no está seleccionado:

1. **En cPanel del usuario:**
   - Ir a "Select PHP Version"
   - Seleccionar PHP 8.2 o superior
   - Guardar cambios

2. **O desde WHM (como root):**
   ```bash
   # Cambiar versión PHP para un usuario
   /opt/cpanel/ea-php82/root/usr/bin/php -v
   ```

---

## 🎯 Resultado Esperado

Después de esta corrección:
1. ✅ El script detectará PHP 8.2+ si está disponible
2. ✅ Si solo hay PHP 8.1, usará `--ignore-platform-reqs`
3. ✅ `composer install` debería completarse
4. ✅ Las migraciones deberían ejecutarse

---

## ⚠️ Nota sobre `--ignore-platform-reqs`

**Ventajas:**
- Permite instalar dependencias aunque PHP < 8.2
- Útil para desarrollo/testing

**Desventajas:**
- Algunas funcionalidades pueden no funcionar correctamente
- Puede causar errores en tiempo de ejecución

**Recomendación:** Cambiar a PHP 8.2+ en cPanel cuando sea posible.

---

**Última actualización:** Noviembre 2024

