https://github.com/heroku/heroku-buildpack-php/issues/326#issuecomment-467557798 The devs answered on the issue I created on the official GitHub repository.
I have a PHP app on heroku, which was deployed without issues as the following repository structure:
myapp ├── connect.php ├── elec.php ├── index.php └── key.php
I cloned the app on a different machine, and reorganised the app as follows:
myapp ├── auth-server │ ├── composer.json │ ├── connect.php │ ├── election.php │ ├── index.php │ └── key.php ├── poll-server └── Procfile
with the Procfile containing the following:
web: vendor/bin/heroku-php-apache2 auth-server/
However, the deployement fails with the following message:
Enumerating objects: 35, done. Counting objects: 100% (35/35), done. Delta compression using up to 4 threads Compressing objects: 100% (29/29), done. Writing objects: 100% (34/34), 58.78 KiB | 2.35 MiB/s, done. Total 34 (delta 7), reused 0 (delta 0) remote: Compressing source files... done. remote: Building source: remote: remote: -----> App not compatible with buildpack: https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/php.tgz remote: remote: ! ERROR: Application not supported by this buildpack! remote: ! remote: ! The 'heroku/php' buildpack is set on this application, but was remote: ! unable to detect a PHP codebase. remote: ! remote: ! A PHP app on Heroku requires a 'composer.json' at the root of remote: ! the directory structure, or an 'index.php' for legacy behavior. remote: ! remote: ! If you are trying to deploy a PHP application, ensure that one remote: ! of these files is present at the top level directory. remote: ! remote: ! If you are trying to deploy an application written in another remote: ! language, you need to change the list of buildpacks set on your remote: ! Heroku app using the 'heroku buildpacks' command. remote: ! remote: ! For more information, refer to the following documentation: remote: ! https://devcenter.heroku.com/articles/buildpacks remote: ! https://devcenter.heroku.com/articles/php-support#activation remote: remote: remote: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure remote: remote: ! Push failed remote: Verifying deploy... remote: remote: ! Push rejected to myapp. remote: To https://git.heroku.com/myapp.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'https://git.heroku.com/myapp.git'
Since I have both, index.php and composer.json, at the document root specified by the Procfile, the error message does not seem to provide accurate information on what's missing.
Further, I checked out the commit that worked on the previous machine (which is also the current deployed version) only to find it now failing with the same message as above.