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不再依赖虚拟主机来检测工作环境。现在,它使用计算机的主机名进行操作。因此,您需要将
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项目(我通常这样做),则在
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; |
这样一来,即使您将代码移动到其他目录或移动到另一台计算机/另一个没有点的虚拟主机,也不必将计算机名称添加到
当然,您可以根据需要添加更多规则(包括