相关疑难解决方法(0)

在Heroku上设置Yii2 Advanced

我需要一些帮助在Heroku上设置Yii2高级应用程序.我已经使用Composer在本地安装了Yii,完全遵循他们的指南:http://www.yiiframework.com/doc-2.0/guide-tutorial-advanced-app.html

我的网站在本地工作,有前端和后端:

http://localhost/yii2app/frontend/web/
http://localhost/yii2app/backend/web/
Run Code Online (Sandbox Code Playgroud)

当我推送它并在Heroku上运行时,我收到错误抱怨找不到某些文件.有什么奇怪的,使用我的Heroku应用程序的bash终端,我可以验证文件实际上在那里!Heroku不喜欢'../../'更改目录吗?

PHP Fatal error:  require(): Failed opening required '/app/frontend/web/../../common/config/main-local.php'  
include_path='.:/app/.heroku/php/lib/php') in /app/frontend/web/index.php on line 12
Run Code Online (Sandbox Code Playgroud)

在'frontend/web/index.php'中是Yii的股票代码(第12行是main-local.php):

$config = yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/../../common/config/main.php'),
require(__DIR__ . '/../../common/config/main-local.php'),
require(__DIR__ . '/../config/main.php'),
require(__DIR__ . '/../config/main-local.php')
);
Run Code Online (Sandbox Code Playgroud)

如果它与'../../'改变目录有关,那么我认为第一个要求会有错误(对于main.php条目).

为了让Herii上的Yii2高级运行,我错过了什么?

更新 - 我创建了一个新的Yii2基本应用程序.应该工作和简单,所以我想.显然,甚至基本的应用程序也不能在Heroku上运行.必须在文档中遗漏某些东西......使用作曲家来安装Yii2 basic,将它放在git下,将其推送到新的heroku堆栈.去看看我的应用程序在heroku上,将/web/index.php添加到网址的末尾.

ReflectionException
Class yii\debug\Module does not exist
Run Code Online (Sandbox Code Playgroud)

然后我将index.php放在包含phpinfo()的根目录中.我可以确认我收到了phpinfo报告.所以php正在运行,它报告PHP 5.6.5.

看起来像Yii2和Heroku在没有一些神奇(并且没有记录)的技巧的情况下表现不佳.我搜索,搜索和搜索,我找不到任何关于此的内容.我不可能是唯一一个试图将Yii应用程序放到Heroku上的人.

所以我尝试了CloudControl.我将我的股票Yii2基本应用程序部署到cloudcontrol,我再次获得了根index.php的phpinfo报告.导航到/web/index.php并获取错误:

Invalid Parameter – yii\base\InvalidParamException
The file or directory to be published does not exist: /srv/www/code/vendor/bower/jquery/dist
Run Code Online (Sandbox Code Playgroud)

是什么赋予了!我可以在本地运行这个很好.当我将它推送到基于云的主机(Heroku或CloudControl)时,它会失败!我认为yiibasic应用程序会更好,至少让它运行PoC,但Yii开箱即用,不会运行这两种服务.还有一些我没想到的东西.

php heroku yii2

10
推荐指数
1
解决办法
4143
查看次数

标签 统计

heroku ×1

php ×1

yii2 ×1