Получить переменную среды Heroku с помощью PHP-скрипта

Я не могу получить доступ к своим переменным среды Heroku, когда запускаю PHP-скрипт. На картинке ниже вы можете видеть, что у меня есть переменная TEST_VAR.

Получить переменную среды Heroku с помощью PHP-скрипта

Фрагмент кода ниже должен выводить эту переменную, вместо этого я ничего не получаю:

$url = getenv('TEST_VAR');
echo $url;

Я попробовал это и получил «Ошибка!», поэтому getenv('TEST_VAR') это false:

if (getenv('TEST_VAR')) {
    $url = getenv('TEST_VAR');
    echo $url;
} else {
    die('Error!');
}

На этом рисунке вы можете увидеть вывод обоих фрагментов (пустая строка и ошибка!).

Получить переменную среды Heroku с помощью PHP-скрипта

«Фрагмент кода ниже должен выводить эту переменную» — да, вероятно, должен. Что вместо этого возвращает getenv('TEST_VAR')? Как вы запускаете этот код? Прочтите Как спросить.

Chris 06.07.2019 20:27
Пожалуйста, не публикуйте скриншоты текста. Их нельзя найти или скопировать, и они не очень удобны в использовании. Вместо этого вставьте код в виде текста прямо в свой вопрос. Если вы выберете его и нажмете кнопку {} или Ctrl+K, блок кода будет иметь отступ в четыре пробела, что заставит его отображаться как код.
Chris 07.07.2019 16:14

Обратите внимание, что вам не нужно использовать HTML в своем вопросе. Stack Overflow поддерживает уценку, простой язык форматирования, который намного легче набирать и читать.

Chris 07.07.2019 16:26

Обратите внимание, что ваш фрагмент на самом деле не гарантирует, что getenv('TEST_VAR') возвращает false. Многие другие значения оцениваются как false в логическом контексте в PHP.. Например, если бы TEST_ENV была установлена ​​​​на пустую строку, я думаю, вы получите тот же результат. Рекомендуется использовать print_r или var_dump или, что еще лучше, использовать отладчик, чтобы увидеть реальное значение переменной.

Chris 07.07.2019 16:31
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
444
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Похоже, вы запускаете этот код в своей локальной командной строке. heroku config:set устанавливает переменные средыдля вашего приложения на Heroku. Это ничего не делает с вашей локальной средой.

Чтобы использовать переменные среды локально, вы должны установить их другим способом. Вы можете сделать это вручную, используя любые инструменты, которые предоставляет ваша операционная система, но интерфейс командной строки Heroku также предоставляет команда heroku local вместо считывает переменные среды из файла с именем .env и заполняет их для вас.

Просто создайте файл .env, содержащий ваши переменные, например.

TEST_VAR=hello_world

а затем запустите свой код через heroku local. По умолчанию это запустит ваш процесс web, как указано в вашем Procfile. Если вы уже настроили переменные с помощью heroku config:set, вы можете скопируйте их в свой .env файл:

heroku config:get TEST_VAR >> .env

Обратите внимание, что файл .env не должен быть зафиксирован в вашем репозитории. Он предназначен только для локального использования. На Heroku вы должны продолжать устанавливать переменные конфигурации, используя heroku config:set.

Другие вопросы по теме