heroku / heroku-buildpack-php

Heroku's buildpack for PHP applications.
https://devcenter.heroku.com/categories/php
MIT License
805 stars 1.59k forks source link

Allowing skipping the installation of the webserver that is not used #663

Open stof opened 11 months ago

stof commented 11 months ago

Currently, the buildpack always install both apache and nginx, even though each app will use only one of them, increasing the slug size for nothing. It would be great if the unused one could be skipped during the install.

I see 2 alternatives:

  1. the nice one: automatically detect which server is used based on the commands used in the Procfile
  2. the manual one: allow configuring somewhere (maybe a setting in the extra section in composer.json) which server should be installed (defaulting to install both if this is not configured)
dzuelke commented 10 months ago

The issue with approach 1 is that a lot of users have custom startup scripts, compound commands, etc, so there'd always have to be an alternative way.

I too have been thinking about an extra entry, but I am also looking into it for the in-progress PHP CNB, where we can maybe have users control this via project.toml metadata instead (and actually have the web servers supplied by a separate buildpack that gets used automatically but can also be combined with e.g. other language buildpacks).