На моем сервере AWS (под управлением Ubuntu 18) я заметил, что когда я использую PHP для запуска сценария оболочки, значение $PATH
или другие переменные среды, я не ожидал.
Я установил новое программное обеспечение (Stata), которое мне нужно использовать в различных приложениях, работающих на сервере, поэтому мне нужно добавить его в $PATH
. Я обновил (в масштабе всей системы?) /etc/environment
файл для включения нового программного обеспечения, как показано ниже:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/stata"
Однако, как ни странно, когда я запускаю приложение и распечатываю $PATH
используя Symfony Process
класс, его фактическое значение составляет
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Еще более странно, если я распечатаю (через PHP) вывод exec('printenv', $output, $result);
в $PATH
переменная (а также $BASH
или $SHELL
) просто вообще не определяется!
Для полноты картины, если я вместо этого бегу echo $PATH
на терминале (через SSH) вывод является ожидаемым, который (в моем понимании) будет установлен в /etc/environment
.
Я также пробовал вернуть исходный /etc/environment
и изменить ~/.bashrc
, ~/.profile
или создание ~/.bash_profile
с участием
PATH="$PATH:/usr/local/stata"
но просто ничего не изменилось.
Есть идеи о том, что здесь происходит? Как я могу изменить свой $PATH
стоимость?