> ## 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.

# Como hospedar uma aplicação PHP na Vertra Cloud

> Faça deploy de uma aplicação PHP 8.3 na Vertra Cloud: composer.json, o ponto de entrada público, a variável PORT e HTTPS automático.

## Requisitos

* PHP 8.2+ instalado localmente
* Composer para gerenciamento de dependências
* Conta na [Vertra Cloud](https://vertracloud.app)

## Estrutura do projeto

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

## Configuração

### 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]
>
> A plataforma executa `composer install` automaticamente. Não inclua a pasta `vendor` no envio.

### vertracloud.config

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

## Exemplo: API REST simples

### 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);
?>
```

## Deploy

**Painel**

1. Compacte o projeto em um `.zip` (pastas como `node_modules`, `venv` e `target` são removidas automaticamente) ou envie para o GitHub.
2. No painel, clique em **Novo Projeto** e envie o `.zip` ou cole a URL do repositório.
3. Em **Build**, confira o runtime (**PHP**), o arquivo principal (`public/index.php`) e a memória. Os comandos de start e de build ficam em **Configurações Avançadas**.
4. Adicione suas variáveis de ambiente em **Ambiente**.
5. Em **Rede**, ative a **publicação web** para que a aplicação receba um endereço `*.vertraweb.app` (plano Pro ou superior, 512 MB de memória). A aplicação precisa escutar na porta 80.
6. Revise e faça o deploy. Acompanhe a saída na aba **Logs**.

**CLI**

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

Veja [CLI](https://docs.vertracloud.app/pt-br/cli.md) para instalação e login.

**VS Code**

Abra a pasta com a extensão da Vertra Cloud instalada e execute **Fazer deploy do projeto atual**. Veja [Extensão do VS Code](https://docs.vertracloud.app/pt-br/vscode-extension.md).

O passo a passo completo está em [Primeiro deploy](https://docs.vertracloud.app/pt-br/how-to-host.md).

## Versões disponíveis

| Versão | Status | Descrição |
| - | - | - |
| 8.4.27 | Mais recente | PHP 8.4 (versão mais recente) |
| 8.3.36 | Recomendada | PHP 8.3 (recomendada para produção) |
| 8.2.35 | Estável | PHP 8.2, disponível até o fim do suporte em 12/31/2026 |

## Observações

* **Dependências**: use o Composer para gerenciar as dependências
* **Variáveis de ambiente**: acesse via `$_SERVER['...']` ou use bibliotecas como `vlucas/phpdotenv`
* **Logs**: escreva em stdout/stderr para que apareçam nos logs do painel
* **Sessões**: configure sessões em memória ou com Redis, se necessário
* **Segurança**: use `header('Content-Type: application/json')` em APIs
* Escute em `0.0.0.0` na porta `$PORT`


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