PHP
Detetado a partir do composer.json. Servido com FrankenPHP.
Guias de deploy passo a passo: PHP.
Consulte Buildpackspara ver como funcionam a deteção e a política de versões. Um projeto que também tenha package.json recebe o Node.jsno mesmo build (Laravel + Vite).
Deteção
composer.json no Base directory.
Versões
A versão por omissão é o PHP 8.3. Linhas publicadas em setembro de 2026: 8.2-8.5. Recebe o patch mais recente da versão minor pedida.
Para fixar a versão, por esta ordem:
.php-versionrequire.phpemcomposer.json(um intervalo escolhe a versão publicada mais alta compatível)
O próprio Composer é uma ferramenta de build. A versão do Composer não é fixada.
Instalação e build
composer install --no-dev --optimize-autoloader. Depois, o Laravel (artisan) coloca em cache a configuração, as rotas, as vistas e os eventos, se esses comandos Artisan existirem. O Symfony (bin/console mais symfony.lock) executa cache:warmup --env=prod.
Valores por omissão no arranque: Laravel APP_ENV=production, LOG_CHANNEL=stderr, APP_DEBUG=false. Symfony APP_ENV=prod, APP_DEBUG=0.
Comando de arranque
A raiz dos documentos (document root) é public/, web/ ou a raiz da aplicação.
- Laravel Octane (o lockfile inclui
laravel/octane):php artisan octane:frankenphp --port=$PORT --host=0.0.0.0 - Caso contrário:
frankenphp php-server --listen :$PORT --root <docroot>
Pode substituí-lo por um Procfile. A aplicação deve escutar em PORT.