I've been using Heroku to host a bunch of static sites using the Apache/PHP hack. All I need is an index.php file in the root of my application to hint to Heroku that I want the PHP (Apache) buildpack... and then I disable PHP altogether since I really just want Apache to serve a static site. But some of my recent attempts at creating these stacks have results in Heroku giving me a Node.js stack instead... WTF?!?
Turns out that some of the newer node-based tools for managing static assets require a "package.json" file, which makes Heroku think you want a Node.js stack.
Specify the buildpack when creating the app.
$ heroku create myapp --buildpack https://github.com/heroku/heroku-buildpack-php
Or specify the buildpack as a config parameter.
$ heroku create myapp $ heroku config:set BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-php
This will force Heroku to use the buildpack you want.