Передача переменной среды в командную строку PHP скрипт

Я хочу установить переменную среды, затем получить доступ к ней в PHP, но не могу найти, как это сделать.

В оболочке (linux) я запускаю:

$ APP_ENV="development"
$ export $APP_ENV

Затем я запускаю простой тест script testenv.php:

<?php
print $_ENV["APP_ENV"];
print getenv("APP_ENV");

Из той же оболочки, где была установлена ​​эта переменная:

$ php testenv.php

Это ничего не печатает и выдает уведомление:

Notice: Undefined index: APP_ENV in /xxxx/envtest.php on line 2

Уведомление имеет смысл, поскольку APP_ENV просто не найден в переменных среды, getenv() не выдает предупреждения, но просто ничего не возвращает.

Что мне не хватает?

Ответ 1

Не используйте $ в команде export, это должно быть:

export APP_ENV

Вы можете комбинировать это с назначением:

export APP_ENV="development"

С помощью $ вы эффективно выполняете:

export development

Ответ 2

Проблема 1 Экспорт переменных среды

Ваш экспорт неверен.

$ APP_ENV="development"
$ export APP_ENV

Обратите внимание, что в инструкции экспорта отсутствует $!: P

Сначала проверьте getenv, чтобы убедиться, что экспорт работает:

<?php
  echo getenv ("APP_ENV");
?>

Проблема 2: Undefined индекс на этом:

<?php
   echo $_ENV["APP_ENV"];
?>

Если вы получаете правильное значение из getenv, но не supgllobal $_ENV, вам может потребоваться проверить ваш ini файл.

Цитата php.org:

Если ваш массив $_ENV загадочно пуст, но вы все еще видите переменные при вызове getenv() или в phpinfo(), проверьте http://us.php.net/manual/en/ini.core.php#ini.variables-order ini для обеспечения включения в строку "E".