2015-08-19 116 views
2

我已经让Laravel在Heroku上工作了,但是之后的相同和/或类似的步骤似乎不再适用于我。如何让Laravel 5在Heroku上工作?

在Windows 10安装后我有一个全新的Laravel 5安装(所以你明白这实际上是全新的)。我安装了Homestead,检查了Laravel应用程序在Homestead上的工作,并推送到Heroku。更新信息如下:

通过CLI:

heroku buildpacks:set https://github.com/heroku/heroku-buildpack-php 
heroku config:set LARAVEL_ENV=heroku 
heroku run composer update 

添加Procfile:

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

这将结束与显示服务器:

哎呦,看起来像出事了。

如何在Heroku上启用调试或找出出错的地方?我查看了Laravel的更新日志,看起来他们已经从5.1上升到了5.1.4,因为我上次做到这一点,但是我不太了解事情以了解可能导致此问题的更改。

+0

你需要一个本地'.env'文件设置一个本地/调试环境。运行'cp .env.example .env'来使用默认的(并且在完成后删除它,因为我认为这只适用于本地的envs)。它会在适当的错误信息中显示问题。 – halfer

+0

感谢您注意到我错过了描述问题的步骤。我确实添加了一个.env文件。 – endqwerty

回答

4

我想通了。随着新的Laravel更新到5.1.4,增加了一些额外的安全性。这意味着16个字符的appkey不再有效。正如许多人发现在Config帮助中编辑app.php。

配置/ app.php

'key' => env('APP_KEY', 'SomeRandomStringSomeRandomString'), 

'SomeRandomStringSomeRandomString' 实际上允许应用程序运行。这是32个字符键,这是新的最小值。希望这可以帮助每个人。我知道当我以前的方法不再有效时,我遇到了很多挫折。

另请注意,这意味着您处于没有自己的appkey的环境中。可能会想要生成一个新的32char密钥的安全性。

3

继续回答您的问题,这似乎是在本地设置应用程序密钥的正确方法。

cp .env.example .env 

里面的应用程序然后设置加密密钥:首先,确保你的环境文件在项目的根目录中

php artisan key:generate 

对于非开发安装,你可能会想设置这个环境变量(以及任何其他国家,如数据库连接字符串)在Apache虚拟主机,而不是:

SetEnv APP_KEY SomeRandomStringSomeRandomString 
+0

[这里](https://devcenter.heroku.com/articles/getting-started-with-laravel#setting-a-laravel-encryption-key)是官方文档 –