У меня возникли проблемы с использованием getenv()
в моем PHP-скрипте. Я установил переменную среды в моей сессии bash:
MYPATH=~/some/kind/of/path
Я проверил его работу с:
echo $MYPATH
Мой вопрос:
Почему getenv( 'MYPATH' )
возвращает false
когда я использую его в своем PHP-скрипте? Я бы ожидал возвращения /home/user/some/kind/of/path.
Если вы устанавливаете var и вызываете скрипт php сразу после taht, в том же сеансе оболочки вы должны экспортировать среду var:
Когда какая-либо переменная экспортируется в среду, она передается в среду всех процессов потомков. Поскольку php создает новый "подпроцесс", вы должны совместно использовать "среду" и vars, и это происходит при использовании экспортной инструкции.
Если вы хотите получить путь к файлу текущего каталога, вы можете использовать это:
define("FILE_ROOT", dirname(__FILE__));
Затем, когда вы хотите использовать его:
echo FILE_ROOT;
Если вы пытаетесь получить доступ к этой переменной среды через PHP в веб - SAPI, то вам необходимо установить переменную окружения в конфигурации вашего веб - сервера, например, в vhost
секции, используя SETENV
<VirtualHost hostname:80>
...
SetEnv VARIABLE_NAME variable_value
...
</VirtualHost>
export MYPATH
. См. 35293297/1709033.