PHP

Erkannt über composer.json. Ausgeliefert mit FrankenPHP.

Siehe Buildpacksfür Detection und Versionspolitik. Ein Tree, der auch package.json hat, bekommt Node.jsim selben Build (Laravel + Vite).

Erkennt

composer.json im Base directory.

Versionen

Default ist PHP 8.3. Veröffentlichte Lines Stand September 2026: 8.2-8.5. Du bekommst den neuesten Patch der angefragten Minor.

Pinnen, in dieser Reihenfolge:

  • .php-version
  • require.php in composer.json (ein Range nimmt die höchste passende veröffentlichte Version)

Composer selbst ist ein Build-Tool. Du pinnst es nicht.

Install und Build

composer install --no-dev --optimize-autoloader. Laravel (artisan) cached dann Config, Routes, Views und Events, wenn diese Artisan-Commands existieren. Symfony (bin/console plus symfony.lock) führt cache:warmup --env=prod aus.

Launch-Defaults: Laravel APP_ENV=production, LOG_CHANNEL=stderr, APP_DEBUG=false. Symfony APP_ENV=prod, APP_DEBUG=0.

Start-Command

Document Root ist public/, oder web/, oder die App-Wurzel.

  • Laravel Octane (Lockfile listet laravel/octane): php artisan octane:frankenphp --port=$PORT --host=0.0.0.0
  • sonst: frankenphp php-server --listen :$PORT --root <docroot>

Mit einer Procfile überschreiben. Auf PORT lauschen.

Gib deinem Agenten eine Cloud.

Bis zu 15 € Guthaben beim Registrieren.

Weiter mit GitHub

oder per E-Mail

Bleib auf dem Laufenden.

Produktnews, kein Spam. Jederzeit abbestellen.