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

时间:2015-11-19 00:44:28

标签: php git heroku web-deployment

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

这就是我所做的。

  1. 在heroku中创建了一个应用
  2. 将我的github链接到我的heroku app
  3. 从我的本地目录
  4. 添加了一个远程到heroku应用程序
  5. 将buildpack设置为php
  6. 运行git push heroku master
  7. 我的目录包含以下文件:

    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
    

3 个答案:

答案 0 :(得分:13)

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

我的composer.json文件只包含这个,所以它是一个有效的json。

  

{}

答案 1 :(得分:0)

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

答案 2 :(得分:0)

请确保您执行以下操作。

  • 使用一些测试数据创建index.html。
  • 创建文件中仅包含composer.json的{​​{1}}
  • 创建具有{}的{​​{1}}
  • 现在提交这些,并使用此命令index.php
  • 推送

所有文件应位于同一目录中。