我正在从共享虚拟主机迁移到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,可能与供应商的新位置有关。
有没有办法:
public_html/vendor
中,并将PHP放入根vendor
目录,或public_html
以上的文件,以允许我添加autoload.php
?答案 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/