Как использовать переменные окружения в скрипте PHP с помощью getenv ()?

1

У меня возникли проблемы с использованием getenv() в моем PHP-скрипте. Я установил переменную среды в моей сессии bash:

MYPATH=~/some/kind/of/path

Я проверил его работу с:

echo $MYPATH

Мой вопрос:

Почему getenv( 'MYPATH' ) возвращает false когда я использую его в своем PHP-скрипте? Я бы ожидал возвращения /home/user/some/kind/of/path.

Ссылка: http://php.net/manual/en/function.getenv.php

  • 0
    Вы запускаете этот PHP-скрипт из командной строки?
  • 0
    Я запускаю его через свой веб-сервер (Apache). Я обновил свой вопрос, чтобы прояснить это.
Показать ещё 1 комментарий
Теги:
environment-variables

3 ответа

3
Лучший ответ

Если вы устанавливаете var и вызываете скрипт php сразу после taht, в том же сеансе оболочки вы должны экспортировать среду var:

Изображение 174551

Когда какая-либо переменная экспортируется в среду, она передается в среду всех процессов потомков. Поскольку php создает новый "подпроцесс", вы должны совместно использовать "среду" и vars, и это происходит при использовании экспортной инструкции.

  • 0
    Я не запускаю PHP-скрипт через CLI, извините, что не прояснил это. Я обновил свой вопрос.
0

Если вы хотите получить путь к файлу текущего каталога, вы можете использовать это:

define("FILE_ROOT", dirname(__FILE__));

Затем, когда вы хотите использовать его:

echo FILE_ROOT;
  • 0
    В моем случае это не то, что я хочу сделать. Но спасибо за предложение.
0

Если вы пытаетесь получить доступ к этой переменной среды через PHP в веб - SAPI, то вам необходимо установить переменную окружения в конфигурации вашего веб - сервера, например, в vhost секции, используя SETENV

<VirtualHost hostname:80>
    ...
    SetEnv VARIABLE_NAME variable_value
    ...
</VirtualHost>
  • 0
    Кажется, мне нужно было export MYPATH . См. 35293297/1709033.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню