> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vertracloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Cómo alojar una aplicación PHP en Vertra Cloud

> Despliega una aplicación PHP 8.3 en Vertra Cloud: composer.json, el punto de entrada público, la variable PORT y HTTPS automático.

## Requisitos

* PHP 8.2+ instalado localmente
* Composer para la gestión de dependencias
* Cuenta en [Vertra Cloud](https://vertracloud.app)

## Estructura del proyecto

```
my-api-php/
├── src/
│   └── routes.php
├── vendor/
├── public/
│   ├── index.php
│   └── .htaccess
├── composer.json
└── vertracloud.config
```

## Configuración

### composer.json

```json theme={null}
{
  "name": "example/my-api-php",
  "description": "PHP API on Vertra Cloud",
  "type": "project",
  "require": {
    "php": ">=8.2",
    "illuminate/http": "^10.0",
    "guzzlehttp/guzzle": "^7.5"
  },
  "require-dev": {
    "phpunit/phpunit": "^10.0"
  },
  "autoload": {
    "psr-4": {
      "App\\": "src/"
    }
  },
  "scripts": {
    "start": "php -S 0.0.0.0:${PORT:-8000} -t public"
  }
}
```

> [!NOTE]
>
> La plataforma ejecuta `composer install` automáticamente. No incluyas la carpeta `vendor` en la subida.

### vertracloud.config

```ini theme={null}
MAIN=public/index.php
START=php -S 0.0.0.0:$PORT -t public
VERSION=recommended
```

## Ejemplo: API REST sencilla

### public/index.php

```php theme={null}
<?php
header('Content-Type: application/json');

function json_response($data, $status = 200) {
    http_response_code($status);
    echo json_encode($data);
    exit;
}

if ($_SERVER['REQUEST_URI'] === '/' && $_SERVER['REQUEST_METHOD'] === 'GET') {
    json_response([
        'message' => 'API PHP on Vertra Cloud',
        'version' => '1.0.0'
    ], 200);
}

if ($_SERVER['REQUEST_URI'] === '/health' && $_SERVER['REQUEST_METHOD'] === 'GET') {
    json_response([
        'status' => 'healthy',
        'service' => 'php-api'
    ], 200);
}

json_response(['error' => 'Not found'], 404);
?>
```

## Despliegue

**Panel**

1. Comprime el proyecto en un `.zip` (carpetas como `node_modules`, `venv` y `target` se eliminan automáticamente) o súbelo a GitHub.
2. En el panel, haz clic en **Nuevo proyecto** y sube el `.zip` o pega la URL del repositorio.
3. En **Build**, revisa el runtime (**PHP**), el archivo principal (`public/index.php`) y la memoria. Los comandos de inicio y de build están en **Ajustes avanzados**.
4. Agrega tus variables de entorno en **Entorno**.
5. En **Red**, activa **Publicación web** para que la aplicación obtenga una dirección `*.vertraweb.app` (plan Pro o superior, 512 MB de memoria). La aplicación debe escuchar en el puerto 80.
6. Revisa y despliega. Sigue la salida en la pestaña **Logs**.

**CLI**

```bash theme={null}
vertra upload
vertra logs -f
```

Consulta [CLI](https://docs.vertracloud.app/es-es/cli.md) para la instalación y el inicio de sesión.

**VS Code**

Abre la carpeta con la extensión de Vertra Cloud instalada y ejecuta **Desplegar el proyecto actual**. Consulta [Extensión de VS Code](https://docs.vertracloud.app/es-es/vscode-extension.md).

La guía completa está en [Primer despliegue](https://docs.vertracloud.app/es-es/how-to-host.md).

## Versiones disponibles

| Versión | Estado | Descripción |
| - | - | - |
| 8.4.27 | Última | PHP 8.4 (última versión) |
| 8.3.36 | Recomendada | PHP 8.3 (recomendada para producción) |
| 8.2.35 | Estable | PHP 8.2, disponible hasta el fin de su soporte el 31/12/2026 |

## Notas

* **Dependencias**: usa Composer para gestionar las dependencias
* **Variables de entorno**: accede a ellas con `$_SERVER['...']` o usa bibliotecas como `vlucas/phpdotenv`
* **Logs**: escribe en stdout/stderr para que aparezcan en los logs del panel
* **Sesiones**: configura sesiones en memoria o con Redis si lo necesitas
* **Seguridad**: usa `header('Content-Type: application/json')` en las APIs
* Escucha en `0.0.0.0` en el puerto `$PORT`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.