Heroku上的Composer.json供应商文件夹

时间:2017-09-02 20:31:29

标签: php heroku composer-php

我正在从共享虚拟主机迁移到Heroku,无法弄清楚如何正确使用Composer。

我的应用程序指向public_html文件夹,上面有根文件夹中的composer.json文件。这将在根文件夹中生成一个vendor文件夹(由于我不明白的原因),当我尝试在我的代码中包含autoload.php文件时,我无法访问该文件夹(例如require_once('../vendor/autoload.php')

我的解决办法就是将composer.json移到public_html,但这并没有导致Heroku找不到问题,所以我把它移回去了。然后我将composer.json中的供应商目录更改为指向public_html/vendor

这有预期的效果,但现在我的应用程序无法运行,因为它无法找到PHP,可能与供应商的新位置有关。

有没有办法:

  1. 配置composer.json让Heroku将除PHP之外的所有内容放在public_html/vendor中,并将PHP放入根vendor目录,或
  2. 从我的代码中访问public_html以上的文件,以允许我添加autoload.php

1 个答案:

答案 0 :(得分:1)

好的,事实证明这是一个相对简单的修复,我只是想通了自己。我会在这里发布,以防其他人碰巧犯同样的错误。

如果您更改vendor-dir中的composer.json,则还需要更改Procfile

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

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