laravel 4 on beanstalk,php artisan如何弄清楚环境

时间:2013-11-30 10:29:11

标签: amazon-ec2 laravel-4 elastic-beanstalk

我有3个环境

  • 开发
  • staging
  • 生产

当我使用 amazon beanstalk 时,每个请求都会通过负载均衡器,从那时您最终会遇到 ec2服务器,这可能会有所不同每次(因此找出环境的问题,我不能每次都使用机器名称,因为它不同)。

我在beanstalk配置中发现了环境变量,因此我从 .ebextensions.myapp.config 传递了一个环境变量 PARAM_1 ,它基本上决定了要使用以下环境的环境特技。

$env = $app->detectEnvironment(array(
  'staging' => $_SERVER['PARAM_1'] == 'staging' ? array(gethostname()) : array('not-staging'),
  'production' => $_SERVER['PARAM_1'] == 'production' ? array(gethostname()) : array('not-production'),
  'development' => array('mylocalname')
));

php artisan命令外,此工作正常!出于某种原因,在运行artisan命令时,我无法访问此环境变量,所以我被卡住了! 我想运行 php artisan migrate ,但我该如何告诉它所处的环境呢! (基于环境,我有不同的数据库配置)

1 个答案:

答案 0 :(得分:3)

您可以像这样定义环境:

php artisan migrate  --env=Development

您还可以使用其他SO答案将工匠环境硬编码到您的代码中:Environment driven database settings in Laravel?