Nesta página

PHP

A Guara Cloud suporta totalmente aplicacoes PHP, incluindo frameworks como Laravel, Symfony e projetos PHP puros rodando com Apache ou Nginx.

Versoes suportadas

As seguintes versoes do PHP sao detectadas automaticamente:

  • PHP 8.1
  • PHP 8.2
  • PHP 8.3

A versao e detectada automaticamente pelo campo require.php no seu composer.json.

{
  "require": {
    "php": ">=8.3"
  }
}

Deploy com Dockerfile

Para ter controle total sobre o build, inclua um Dockerfile na raiz do seu repositorio. Aplicacoes PHP geralmente usam Apache ou Nginx + FPM como gerenciador de processos.

FROM php:8.3-apache

WORKDIR /var/www/html

RUN a2enmod rewrite

COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

COPY composer.json composer.lock ./
RUN composer install --no-dev --optimize-autoloader

COPY . .

RUN sed -i 's/80/${PORT}/g' /etc/apache2/sites-available/000-default.conf /etc/apache2/ports.conf

EXPOSE 3000

ENV PORT=3000

CMD ["apache2-foreground"]

Deploy com Buildpack

Se o seu repositorio nao contiver um Dockerfile, a Guara Cloud detecta automaticamente seu projeto PHP pela presenca de um arquivo composer.json ou index.php.

A deteccao automatica vai:

  1. Detectar a versao do PHP pelo composer.json
  2. Executar composer install automaticamente
  3. Detectar projetos Laravel com suporte de primeira classe (cache do artisan, FrankenPHP + Caddy)
  4. Configurar automaticamente o Caddy como servidor web
  5. Iniciar a aplicacao

Configuracao de porta

Sua aplicacao PHP nao le a porta diretamente no codigo — o servidor web (Apache ou Nginx) deve ser configurado para escutar na porta configurada nas configuracoes do servico. O padrao e 3000, mas voce pode altera-lo a qualquer momento.

Para Apache, atualize seu virtual host ou use a variavel $PORT na configuracao:

Listen ${PORT}

<VirtualHost *:${PORT}>
    DocumentRoot /var/www/html/public
</VirtualHost>

Para Nginx, atualize seu bloco server:

server {
    listen ${PORT};
    root /app/public;
    index index.php;
}

Estrutura de projeto exemplo

my-php-app/
  composer.json
  composer.lock
  public/
    index.php
  src/
    Controllers/
    Models/
  Dockerfile          # opcional — omita para usar Buildpack

Variaveis de ambiente

Estas variaveis de ambiente sao comumente usadas em deploys PHP:

VariavelValor recomendadoDescricao
APP_ENVproductionDefine o ambiente da aplicacao (Laravel/Symfony)
PORTDefinido pela plataformaA porta na qual o servidor web deve escutar
APP_KEYSua chaveNecessario pelo Laravel para criptografia
APP_DEBUGfalseDesabilita o modo debug em producao

Erros comuns