# 🔧 Fix: Problemas con PHP CLI en VPS

**Problema:** El script estaba usando `php-cgi` en lugar de `php` CLI, causando errores.

---

## ❌ Problemas Identificados

### 1. Uso de php-cgi
```
Usage: php-cgi [-q] [-h] [-s] [-v] [-i] [-f <file>]
```
**Causa:** En cPanel, `php` puede apuntar a `php-cgi` en lugar de PHP CLI.

### 2. Error 500 al generar .env
```
Status: 500 Internal Server Error
Content-type: text/html; charset=UTF-8
```
**Causa:** `php-cgi` intenta ejecutar como web server, no como CLI.

### 3. Composer no encontrado
```
-bash: line 20: /home/cokecolo/.local/bin/composer: No such file or directory
```
**Causa:** La instalación de Composer falló silenciosamente.

---

## ✅ Soluciones Implementadas

### 1. Función `find_php_cli()`

Detecta automáticamente el PHP CLI correcto:

```bash
find_php_cli() {
  local username="$1"
  local php_paths=(
    "/usr/bin/php"
    "/usr/local/bin/php"
    "$(which php 2>/dev/null)"
  )
  
  for php_path in "${php_paths[@]}"; do
    if [ -n "$php_path" ] && [ -x "$php_path" ]; then
      # Verificar que no sea php-cgi
      if ! echo "$php_path" | grep -q "cgi"; then
        echo "$php_path"
        return 0
      fi
    fi
  done
  
  # Fallback
  sudo -u "$username" bash -c "which php 2>/dev/null" | grep -v cgi || echo "/usr/bin/php"
}
```

### 2. Configuración Simplificada con sed

En lugar de usar PHP para modificar archivos, ahora usa `sed`:

```bash
# Configurar demo
sed -i "s/'demo' => '[^']*'/'demo' => '$demo'/" config/cd-system.php

# Configurar módulos
sed -i "/'$module' =>/,/'active' =>/ s/'active' => [^,]*/'active' => true/" config/cd-system.php
```

**Ventajas:**
- ✅ No requiere PHP
- ✅ Más rápido
- ✅ Más robusto
- ✅ No falla con php-cgi

### 3. Verificación de Composer

Ahora verifica que Composer se instaló correctamente:

```bash
if [ -f ~/.local/bin/composer ]; then
  ~/.local/bin/composer --version
else
  # Reintentar instalación
  install_composer
fi
```

### 4. PHP CLI en generate_env_file

PHP CLI se detecta antes de ejecutar:

```bash
local php_cli=$(find_php_cli "$username")
sudo -u "$username" bash -c "
  $php_cli artisan key:generate --force
"
```

---

## 🔍 Verificación

### Probar PHP CLI en VPS

```bash
# Como root
which php
# Debe mostrar: /usr/bin/php (no php-cgi)

# Verificar que es CLI
php -v
# Debe mostrar versión PHP, no "php-cgi"

# Como usuario cPanel
su - cokecolo
which php
php -v
```

### Si php apunta a php-cgi

```bash
# Buscar PHP CLI alternativo
ls -la /usr/bin/php*
ls -la /usr/local/bin/php*

# Usar ruta completa
/usr/bin/php artisan --version
```

---

## 📋 Cambios en el Script

| Función | Antes | Ahora |
|---------|-------|-------|
| `configure_project_from_json()` | `php -r` | `sed` |
| `generate_env_file()` | `php` (variable) | `find_php_cli()` |
| `install_composer()` | Sin verificación | Verifica instalación |
| `clone_repo_in_public_html()` | `/usr/bin/php` hardcoded | `find_php_cli()` |

---

## 🚀 Próximos Pasos

1. **Subir script corregido:**
   ```bash
   scp scripts/bulk_create_cpanel4.sh root@72.61.45.136:/root/scripts/
   ```

2. **Re-ejecutar:**
   ```bash
   cd /root/scripts
   ./bulk_create_cpanel4.sh --json /tmp/mi-proyecto.json
   ```

3. **Verificar:**
   - ✅ No debe aparecer "php-cgi"
   - ✅ Composer debe instalarse correctamente
   - ✅ .env debe generarse sin error 500
   - ✅ Demo y módulos deben configurarse

---

**Última actualización:** Noviembre 2024  
**Estado:** ✅ CORREGIDO

