如何配置Laravael 4.2环境

时间:2015-10-08 14:12:39

标签: laravel laravel-4

我是Laravael的新手,我是一个由另一个开发者开发的网站,我需要将此网站迁移到另一台服务器。

目前,我正在测试环境。这是我的结构: 测试(本地) 暂存(subdomaindomain.com在线测试) 制作(Domain.com)

$env = $app->detectEnvironment(array(
    'testing' => array('localdomain.dev'),
    'staging' => array('develop.domain.com'),
    'production' => array('www.domain.com')
));

我有相应的文件夹和文件来覆盖原件。

在这一行之后,我创建了一个echo $ env,结果总是在本地(domain.dev)的PRODUCTION上进行暂存(develop.domain.com)

2 个答案:

答案 0 :(得分:0)

自Laravel 4.1起,环境检测仅使用主机名,不是域。引用the docs

  

环境检测更新

     

出于安全原因,URL域可能不再用于检测您的应用程序环境。这些值很容易被欺骗,并允许攻击者修改请求的环境。您应该将环境检测转换为使用机器主机名(Mac,Linux和Windows上的hostname命令)。

您不必使用各种服务器的域名,而是必须使用该计算机的主机名。

如果您不知道机器的主机名,请尝试以下操作:

echo gethostname();

然后在您的环境数组中使用它。

答案 1 :(得分:0)

如果您不想使用主机名,还可以在Web服务器虚拟主机配置中设置环境变量。对于Apache:SetEnv APP_ENV production

然后:

$env = $app->detectEnvironment(function()
{
    return getenv('APP_ENV') ?: 'testing';
});