Laravel 4环境无法正常工作

Laravel 4 Environments not working

我想知道是否有人可以帮忙。

我已经运行了Laravel 4的环境设置,但似乎没有用。

在我的MAMP设置中,我创建了protected.dev主机

在我的Bootstrap-> start.php中,我的本地网址是这样的

1
2
3
$env = $app->detectEnvironment(array(
    'local' => array('protected.dev')
));

我在app-> config目录中创建了一个"本地"目录,将其复制到标准的database.php文件中,然后在"本地"目录中修改了database.php文件。

当我尝试显示该网站时,我得到了

1
Access denied for user 'root'@'localhost'

在标准的config-> database.php文件中。

由于某种原因,它似乎并未检测到其本地环境。

任何帮助将不胜感激。

干杯,


在laravel 4中,环境由计算机名称而不是Web服务器URL设置。

要确定主机名,请使用hostname terminal命令。

在终端中键入主机名(在Linux和Mac上均可),然后将结果剪切并粘贴到本地变量的start.php文件中,它应该可以正常工作。

例:

angoru@angel-mountain:~$ hostname

angel-mountain

我的start.php

1
2
3
4
5
$env = $app->detectEnvironment(array(
  'local' => array('angel-mountain'), // Change this to your local machine hostname.
  'staging' => array('your-staging-machine-name'),
  'production' => array('your-production-machine-name'),
));

有关更多说明:环境配置


Laravel 4不再依赖虚拟主机来检测工作环境。现在,它使用计算机的主机名进行操作。因此,您需要将protected.dev更改为计算机的主机名。在Linux上,您可以通过在终端中运行以下命令来查找计算机的主机名:

1
hostname

有关此http://laravel.com/docs/configuration#environment-configuration的更多信息


在具有多个开发人员的环境中,每个人都可以将其主机名添加到start.php中的"本地"数组中:

1
2
3
4
5
$env = $app->detectEnvironment(array(
  'local' => array('user1-hostname','user2-hostname'), // Developers local hostnames
  'staging' => array('your-staging-machine-name'),
  'production' => array('your-production-machine-name'),
));

如果您使用本地域或其他不带点的虚拟主机测试Laravel项目(我通常这样做),则在bootstrap/start.php中使用此类代码可能会有所帮助:

1
2
3
4
5
6
$env = $app->detectEnvironment(function(){
  if (strpos($_SERVER['HTTP_HOST'],'.') === false) {  
      return 'local';  
  }
  return 'production';
});

后:

1
$app = new Illuminate\Foundation\Application;

这样一来,即使您将代码移动到其他目录或移动到另一台计算机/另一个没有点的虚拟主机,也不必将计算机名称添加到local计算机中。

当然,您可以根据需要添加更多规则(包括127.0.0.1或某些具有.dev名称的主机)。