我有一个Linux服务器,上面有很多不同的网站。当我对网站进行编程时,我将在本地开发它们并将APPLICATION_ENV设置为开发。在我的服务器上,我有一个暂存子域设置,我将APPLICATION_ENV设置为暂存。最后,如果我最终托管生产网站,我可以将APPLICATION_ENV设置为生产。所有这些都很好,但最近我在每次部署后都运行了CLI任务。我的命令行脚本显然不能对我通过Apache设置的APPLICATION_ENV变量做任何事情。我知道你可以像这样导出一个变量:
导出APPLICATION_ENV =“staging”
然而,当我真的只想在staging子域上设置它时,这将在我的整个服务器上设置它。有没有办法将这些变量包含在我服务器上的子域中?
答案 0 :(得分:1)
您的问题标题:
if (PHP_SAPI == 'cli') {
echo 'This is CLI mode!' . PHP_EOL;
var_dump($argv);
}
有关说明:
我认为您可以使用args设置APPLICATION_ENV值或将其设置为(在源代码中)作为内部CLI APP ENV模式。
答案 1 :(得分:1)
将服务器范围内的环境变量放在一起没有任何问题,因为您只能为特定用户(甚至会话)设置它们。
无论如何,最简单的方法可能是通过" env"作为参数,例如:cli.php --env=staging
看看他们是如何在Laravel中解决的:https://laravel.com/docs/4.2/artisan
指定配置环境
您可以指定应使用的配置环境 使用--env开关运行命令时:
php artisan migrate --env=local
Symfony:http://symfony.com/doc/current/cookbook/console/usage.html
$ php bin/console cache:clear --env=prod