сервер — обнаружение среды PHP CLI

У меня есть сервер Linux с кучей разных сайтов на нем. Когда я программирую веб-сайты, я буду разрабатывать их локально и настраивать APPLICATION_ENV на разработку. На моем сервере у меня есть промежуточная настройка субдомена, для которой я установил APPLICATION_ENV в промежуточное состояние. Наконец, если я в конечном итоге размещу производственный веб-сайт, я могу настроить APPLICATION_ENV на производственный. Все это прекрасно работает, но в последнее время я выполняю задачи CLI после каждого развертывания. Мои сценарии командной строки, очевидно, ничего не могут сделать с переменной APPLICATION_ENV, которую я установил через Apache. Я знаю, что вы можете экспортировать переменную так:

export APPLICATION_ENV = «подготовка»

Тем не менее, это будет установка его на весь мой сервер, когда я действительно хочу установить его только на промежуточном поддомене. Есть ли способ содержать эти переменные в поддомен на моем сервере?

0

Решение

Для названия вашего вопроса:

if (PHP_SAPI == 'cli') {
echo 'This is CLI mode!' . PHP_EOL;
var_dump($argv);
}

Для описания:

Я думаю, что вы можете установить значение APPLICATION_ENV с помощью аргументов или установить его (в исходном коде) в качестве внутреннего режима CLI APP ENV.

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

1

По вопросам рекламы [email protected]