Назад | Перейти на главную страницу

$ PATH по умолчанию для sh в Ubuntu (AWS EC2)

На моем сервере 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 стоимость?