尝试在开发模式下迁移

时间:2014-10-17 23:35:47

标签: php laravel environment-variables

我正在试图弄清楚如何在Laravel应用程序中将环境设置为开发模式。

bootstrap / start.php

$env = $app->detectEnvironment(array(

    'development' => array('blog.app'),
    'production' => array('')

));

在我的路线文件中,我有以下内容:

Route::get('/', function()
{
    dd(App::environment());
});

当我去blog.app时,它表示它已投入生产,我不知道为什么。弄清楚为什么它给我生产而不是开发的目的是因为我试图运行命令“php artisan migrate”并且它给我以下内容。

My-iMac:blog my$ php artisan migrate
**************************************
*     Application In Production!     *
**************************************

Do you really wish to run this command?

所以当我试图进入开发模式时,我需要帮助理解为什么它仍在说应用程序处于生产模式。

2 个答案:

答案 0 :(得分:1)

您需要找出您的机器名称。为此,请在任何地方运行此代码:

echo gethostname();
exit;

有关该功能的更多信息:http://php.net/manual/en/function.gethostname.php

它会输出您的机器名称,然后您需要将其粘贴到' development'阵列。

答案 1 :(得分:1)

进入项目目录。然后导航到bootstrap / start.php。

使用您的机器名称编辑$app->detectEnvironment中指定的本地阵列。

Laravel每次都会自动检查您的计算机名称并知道它是本地环境并使用本地配置文件。要使用本地配置文件,您可以导航到app / config / local并在那里编辑文件。 app / config中的文件属于生产环境。您可以将这些文件复制到本地文件夹中,然后相应地进行编辑,例如,您的本地计算机和服务器上的数据库配置可能会有所不同。

您可以简单地编辑配置文件夹中的文件,Laravel将根据start.php中的数组自动检测环境,并使用与您正在使用的计算机相关的配置文件。您还可以在start.php文件中指定更多环境并创建其条目,然后在app / config文件夹中创建一个名称相同的文件夹,并为该文件夹中的该环境创建配置文件。

示例:如果您想拥有两个本地环境,可以编辑start.php文件,如此

$env = $app->detectEnvironment(array(

    'local' => array('Machine1', 'Machine2'),.
    'local2' => array('Machine3', 'Machine4'),

));

然后导航到app / config文件夹并创建两个文件夹,如local和local2,并为每个文件夹分别创建文件。现在名为Machine1和Machine2的机器将自动使用本地文件夹中的配置文件,而Machine3和Machine4将使用local2文件夹中的配置文件。这样,Laravel在设置环境方面提供了极大的灵活性。

有关详细信息,请查看Laracasts上的 Environments and Configuration 剧集。