Laravel的环境问题

时间:2014-11-12 04:49:10

标签: laravel-4

$env = $app->detectEnvironment(array(
    'local' => array('*localhost*'),
    'test'  => array('chan.app'),
));

这是我在boostrap / start.php中设置的方式,我在主机文件中设置了ip

127.0.0.1 localhost
127.0.0.1 chan.app

无论我键入http://localhost/还是http://chan.appApp::environment()始终显示production,因此我无法更改数据库配置。

2 个答案:

答案 0 :(得分:0)

由于存在安全问题,禁止在环境中使用网址。 Laravel说使用主机名

这就是为什么我怀疑,Laravel会正确识别(检测)您的配置,因为两者都在同一台机器上。

来自4.2 Upgrade Guide

  

环境检测更新

     

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

修改

让我们说,您想要一个本地和现场环境。

<强> 1。为每个配置创建文件夹:

  • 创建文件夹local&amp; live内的/app/config/
  • 在每个文件夹中,您可以创建要从/app/config/覆盖的配置文件,

例如,在live(生产)环境中,您不希望激活debug选项。

  • app.php文件夹中创建文件/app/config/live
  • 在内部,您只需返回要覆盖的所需选项,如原始/app/config/app.php中所定义。

    return array('debug' => false);

在当地环境中,&#39; debug&#39;将被设置为true,用于开发。

<强> 2。将环境添加到框架中:

/bootstrap/start.php文件中:

$env = $app->detectEnvironment(array(
    'local' => array('local-machine-name'),
    'live' => array('yourdoamin.com')
));

这是重要的部分:

- 发展(本地): - &gt;机器名称

- 制作: - &gt; root-url(yourdomain.com)代表&#34;机器&#34;名称

有关详细信息,请参阅docs about environment config

答案 1 :(得分:0)

打开您的CMD(Mac,Linux和Windows)并输入命令:

hostname

这将返回您的计算机的名称。然后使用该名称:

$env = $app->detectEnvironment(array(
  'local' => array('ComputerName'),
));