【问题标题】:Laravel 4: Running composer when deploying to HerokuLaravel 4:部署到 Heroku 时运行 composer
【发布时间】:2013-08-11 14:21:42
【问题描述】:

我一直在到处寻找这个问题的答案。

我在 Laravel 中构建了一个应用程序 - 我选择 Heroku 进行部署,我包含了一个自定义 Procfile 和 httpd.conf 来将文档根目录重写为公共。这一切都很好。

但是我的应用在加载时显示内部 500 错误,因为它没有加载任何依赖项,即在部署时没有运行 composer。

我的问题是:如何让 composer 在部署时运行?

附言我是这种东西的菜鸟,所以请提供尽可能多的细节。

我见过的唯一可能的解决方案是:http://bergie.iki.fi/blog/using_composer_to_manage_dependencies_in_heroku_php_apps/

但我相信还有比这更好的方法。

【问题讨论】:

  • 如果您觉得答案有用,请点赞,如果答案正确,请接受并点赞,谢谢。

标签: php deployment heroku laravel composer-php


【解决方案1】:

试试下面的

作曲家修复

你需要在repo中生成并包含composer.lock,但是Laravel默认的.gitignore会忽略composer.lock

  • .gitignore 中删除composer.lock
  • $ composer install

添加您的 Procfile

Heroku 根据名为 Procfile 的配置文件知道要为您的应用运行哪些进程。默认的apache2 进程(如果你不使用Procfile)指向web root,而不是/public,所以我们需要创建一个自定义Procfile 来从/public 为站点提供服务。

  • 添加一个包含此行的名为 Procfile 的文件:

    web: vendor/bin/heroku-php-apache2 public

将您的代码部署到 Heroku 应用

$ git push heroku master

【讨论】:

    【解决方案2】:

    另一个可能的原因是 Heroku 无法将您的应用识别为 PHP 应用,例如因为根目录中存在 package.json。所以它不会为你安装作曲家。

    解决办法是指定一个buildpack,然后再push。

    heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-php
    

    另请参阅: Heroku doesn't recognize my Laravel app as PHP app, and does not do composer install

    【讨论】:

      猜你喜欢
      • 2014-01-17
      • 2018-03-20
      • 2018-08-01
      • 2018-03-26
      • 2019-03-13
      • 1970-01-01
      • 2016-08-06
      • 2015-05-13
      • 1970-01-01
      相关资源
      最近更新 更多