Laravel 4环境无法正常工作

时间:2014-03-04 16:17:11

标签: laravel laravel-4

我想知道是否有人可以提供帮助。

我已经完成了Laravel 4的环境设置,它似乎无法正常工作。

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

在我的Bootstrap-> start.php中,我有我的本地网址

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

我在app-> config目录中创建了一个'local'目录,复制了标准的database.php文件,然后修改了'local'目录下的database.php文件。

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

Access denied for user 'root'@'localhost'

位于标准config-> database.php文件中。

由于某种原因,它似乎无法检测到它的本地环境。

非常感谢任何帮助。

干杯,

4 个答案:

答案 0 :(得分:16)

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

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

在终端中输入主机名(这适用于linux和mac)并将结果剪切并粘贴到局部变量中的start.php文件中,它应该可以正常工作。

示例:

  

angoru @ angel-mountain:〜$ hostname

     

天使山

我的start.php

$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'),
));

有关详细说明:Environment Configuration

答案 1 :(得分:3)

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

hostname

有关此http://laravel.com/docs/configuration#environment-configuration

的更多信息

答案 2 :(得分:1)

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

$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'),
));

答案 3 :(得分:0)

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

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

后:

$app = new Illuminate\Foundation\Application;

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

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