推送被拒绝,未能检测到 set buildpack heroku/php

Push rejected, failed to detect set buildpack heroku/php

我正在尝试将我的 php 应用程序从 github 部署到 heroku,但它无法正常工作。我有过将 php 应用程序部署到 heroku 的经验,但出于某种原因,这次我遇到了麻烦。

这就是我所做的。

  1. 在 heroku 中创建了一个应用程序
  2. 将我的 github 链接到我的 heroku 应用程序
  3. 从我的本地目录向 heroku 应用程序添加了一个遥控器
  4. 将 buildpack 设置为 php
  5. 运行 git push heroku master

我的目录有以下文件:

home.html
index.php
index.css

这是我的 index.phpPush rejected, failed to detect set buildpack heroku/php

这是我在第 5 步后得到的结果:

Counting objects: 52, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (48/48), done.
Writing objects: 100% (52/52), 1.12 MiB | 1.23 MiB/s, done.
Total 52 (delta 20), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Using set buildpack heroku/php
remote:
remote:  !     Push rejected, failed to detect set buildpack heroku/php
remote: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
remote:
remote: Verifying deploy....
remote:
remote: !   Push rejected to appp.
remote:
To https://git.heroku.com/appp.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/appp.git'

这是我的 heroku logs:

2015-11-19T00:22:31.307947+00:00 heroku[api]: Set BUILDPACK_URL config vars by email@gmail.com
2015-11-19T00:22:31.307947+00:00 heroku[api]: Release v3 created by email@gmail.com
2015-11-19T00:22:43.284779+00:00 heroku[slug-compiler]: Slug compilation started
2015-11-19T00:22:43.284789+00:00 heroku[slug-compiler]: Slug compilation failed: failed to detect set buildpack heroku/php
2015-11-19T00:22:43.284790+00:00 heroku[slug-compiler]: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
2015-11-19T00:27:00.648462+00:00 heroku[api]: Starting process with command `false && AUTOMATED DIAGNOSIS BEING RUN BY HEROKU SUPPORT; cat Procfile` by email@gmail.com
2015-11-19T00:27:01.379352+00:00 heroku[run.2268]: Awaiting client
2015-11-19T00:27:01.441226+00:00 heroku[run.2268]: Starting process with command `false && AUTOMATED DIAGNOSIS BEING RUN BY HEROKU SUPPORT; cat Procfile`
2015-11-19T00:27:01.858759+00:00 heroku[run.2268]: State changed from starting to up
2015-11-19T00:27:03.971434+00:00 heroku[run.2268]: Process exited with status 1
2015-11-19T00:27:03.989162+00:00 heroku[run.2268]: State changed from up to complete
2015-11-19T00:30:14.310979+00:00 heroku[slug-compiler]: Slug compilation started
2015-11-19T00:30:14.310987+00:00 heroku[slug-compiler]: Slug compilation failed: failed to detect set buildpack heroku/php
2015-11-19T00:30:14.310988+00:00 heroku[slug-compiler]: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
2015-11-19T00:31:54.735764+00:00 heroku[slug-compiler]: Slug compilation started
2015-11-19T00:31:54.735775+00:00 heroku[slug-compiler]: Slug compilation failed: failed to detect set buildpack heroku/php
2015-11-19T00:31:54.735776+00:00 heroku[slug-compiler]: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
2015-11-19T00:34:31.326372+00:00 heroku[slug-compiler]: Slug compilation started
2015-11-19T00:34:31.326383+00:00 heroku[slug-compiler]: Slug compilation failed: failed to detect set buildpack heroku/php
2015-11-19T00:34:31.326385+00:00 heroku[slug-compiler]: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
2015-11-19T00:34:37.003934+00:00 heroku[slug-compiler]: Slug compilation started
2015-11-19T00:34:37.003944+00:00 heroku[slug-compiler]: Slug compilation failed: failed to detect set buildpack heroku/php
2015-11-19T00:34:37.003946+00:00 heroku[slug-compiler]: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure

我发现了问题所在。在我的 git 存储库中,我有一个单独的文件夹,其中包含将显示该网站的所有 html 和 php 文件。一旦我将它们移出到主目录,heroku 就能够检测到它是一个 php 应用程序。

在我的例子中,我需要在 git 文件夹所在的同一目录中有一个 composer.json 文件。在尝试执行 git push heroku master 之前,还要确保在提交中包含了 json 文件。

我的 composer.json 文件仅包含此文件,因此它是有效的 json。

{ }

请务必做到以下几点。

  • 用一些测试数据创建 index.html。
  • 创建文件中只有 {}composer.json
  • 创建具有 <?php include_once("index.html"); ?>
  • index.php
  • 现在提交这些并使用此命令推送 git push heroku master

所有文件都应该在同一个目录中。