Improvements to PHP app concurrency calculation when using multiple buildpacks

Change effective on 16 February 2026

When the Heroku PHP buildpack is used together with other official Heroku buildpacks which set a default value for the WEB_CONCURRENCY config var on dyno startup, the PHP buildpack will now use its normal method of auto-calculating the number of PHP-FPM worker processes, regardless of the order in which the buildpacks are set on the app.

This ensures automatic concurrency calculation for PHP is not affected by other official Heroku language buildpacks than ran after it during a build, and web dynos always exhibit the expected performance.

After the next deploy, existing PHP applications which also use other Heroku language buildpacks (e.g. Node.js for asset compilation) may now launch a higher number of PHP-FPM worker processes as a result of this change.

Please refer to the Optimizing PHP Application Concurrency article for full details on how concurrency for PHP apps is calculated based on dyno size and PHP memory_limit, for instructions on how to adjust or override the number of PHP-FPM worker processes, and for information on ensuring the appropriate order of buildpacks for an app.