PHP
Détecté via composer.json. Servi avec FrankenPHP.
Guides de déploiement pas à pas : PHP.
Consultez Buildpackspour comprendre la détection et la politique de versions. Un projet qui contient aussi un package.json utilise Node.jsdans le même build (Laravel + Vite).
Détection
composer.json dans le Base directory.
Versions
Par défaut, PHP 8.3. Branches publiées en septembre 2026 : 8.2-8.5. Vous obtenez le dernier correctif de la version mineure demandée.
Pour fixer la version, dans cet ordre :
.php-versionrequire.phpdanscomposer.json(une plage prend la version publiée la plus haute qui correspond)
Composer lui-même est un outil de build. Vous ne fixez pas sa version.
Installation et build
composer install --no-dev --optimize-autoloader. Ensuite, Laravel (artisan) met en cache la configuration, les routes, les vues et les événements si ces commandes Artisan existent. Symfony (bin/console plus symfony.lock) exécute cache:warmup --env=prod.
Valeurs par défaut au lancement : Laravel APP_ENV=production, LOG_CHANNEL=stderr, APP_DEBUG=false. Symfony APP_ENV=prod, APP_DEBUG=0.
Commande de démarrage
La racine des documents est public/, web/ ou la racine de l'app.
- Laravel Octane (le lockfile contient
laravel/octane) :php artisan octane:frankenphp --port=$PORT --host=0.0.0.0 - Sinon :
frankenphp php-server --listen :$PORT --root <docroot>
Un Procfile permet de remplacer la commande. Votre app doit écouter sur PORT.