我必须将 Laravel 应用程序的多个实例部署到一个唯一的服务器。每个实例都需要不同的数据库配置。基于主机名的默认 Laravel 环境配置对我不起作用,因为所有应用程序都将位于同一台服务器上,因此无法确定要使用哪个配置字段。这是我的 bootstrap/start.php
文件:
$env = $app->detectEnvironment(array(
'development' => array('Ariels-MacBook-Pro.local'),
'server' => array('srv-hostname'),
));
我可以根据域定义环境(因为我的应用程序区域将位于不同的域),这样我可以为每个域定义不同的配置(托管在同一台服务器上)
/p>
有什么想法吗?
最佳答案
Laravel 的 detectEnvironment
方法具有 nify 功能,您可以在其中通过闭包以编程方式确定当前环境。例如,这会将 Laravel 配置为始终使用本地环境。
$env = $app->detectEnvironment(function()
{
return 'local';
});
域名应该在 $_SERVER 中的某处,所以像这样未经测试的伪代码应该可以满足您的需求。
$env = $app->detectEnvironment(function()
{
switch($_SERVER['HTTP_HOST'])
{
case: 'example.com':
return 'production';
case: 'another.example.xom':
return 'production';
default:
return 'local'; //default to local
}
});
关于php - 同一台服务器上的 Laravel 4.2 环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26004832/