Laravel环境混乱

时间:2015-10-02 00:42:00

标签: php apache laravel laravel-5

好的,所以我认为我明白这一点,但似乎我对此并不完全了解。

我刚在本地计算机上创建了一个应用程序。我有一个本地.env文件存储我的本地环境变量。我知道当你使用git将应用程序提交到服务器时,不会推送.env文件,而是应该在服务器上设置环境值。

好吧,我正在使用DigitalOcean,我创建了一个新的虚拟主机文件,并使用SetEnv APP_ENV local语法在那里设置环境变量。

当我通过浏览器访问该站点时,我知道它正在获取env值,因为我收到一条错误消息,指出找不到基表,并且数据库名称是我的环境变量中设置的。这很好,因为我还没有运行迁移。

但是,当我进入服务器并运行php artisan migrate时,它似乎没有获取Env值。我认为这是因为工匠没有通过apache虚拟主机运行。

这是否意味着我需要创建一个.env文件来存储我的数据库详细信息等?如果是这样,那么在虚拟主机文件中设置环境变量有什么意义,而不只是有一个.env文件?通过设置虚拟主机配置文件中的值以及.env文件,我正在复制环境变量,这肯定是不好的做法?

如果我不为服务器创建另一个.env文件,如何指定在工匠中使用的环境值?

我希望我能够很好地解释这个问题,但如果我没有,或者我需要澄清一些问题,请询问。

1 个答案:

答案 0 :(得分:2)

Laravel将在每个环境中运行.env文件。对于您的本地,.env和您的暂存环境中的.env等,完全可以接受。等等。

我不清楚你的问题为什么需要在你的vhost文件中放置变量。只需为登台创建.env,为各自的服务器创建生产环境.env。如果您使用自动脚本(如木偶或类似物)进行构建,.env有意简单,以便从脚本轻松创建。

你甚至可以在你的repo中存储一些名为.env的服务器示例.env.production-example,这样你就知道你的服务器应该是什么样子了(显然没有在那里存储凭证)。