Ответ 1
Не используйте $
в команде export
, это должно быть:
export APP_ENV
Вы можете комбинировать это с назначением:
export APP_ENV="development"
С помощью $
вы эффективно выполняете:
export development
Я хочу установить переменную среды, затем получить доступ к ней в 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()
не выдает предупреждения, но просто ничего не возвращает.
Что мне не хватает?
Не используйте $
в команде export
, это должно быть:
export APP_ENV
Вы можете комбинировать это с назначением:
export APP_ENV="development"
С помощью $
вы эффективно выполняете:
export development
Ваш экспорт неверен.
$ APP_ENV="development"
$ export APP_ENV
Обратите внимание, что в инструкции экспорта отсутствует $
!: P
Сначала проверьте getenv, чтобы убедиться, что экспорт работает:
<?php
echo getenv ("APP_ENV");
?>
<?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".