Я пытаюсь добавить /usr/local/texlive/2012/bin/x86_64-linux
в среду PATH
для моего пользователя Apache (www-data
) после установки TeX Live 2012 вручную.
Я отредактировал свой /etc/environment
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/texlive/2012/bin/x86_64-linux"
, чтобы включить этот путь в мою общесистемную переменную PATH
для всех пользователей.
Однако, если я выполню sudo -u www-data printenv PATH
, я только получаю:
# sudo -u www-data printenv PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Я не могу понять источник этой проблемы и ценю любую помощь.
Вашему /etc/environment
не нужен оператор export
перед парами ключ / значение. Как указано в вики :
Это не файл сценария, а, скорее, состоит из выражений присваивания, по одному на строку.
blockquote>См. этот другой вопрос о том, как работает формат.
https://help.ubuntu.com/community/EnvironmentVariables в первой заметке «Общесистемные переменные среды» ответит на ваш вопрос.
У меня была подобная проблема, где я нуждался в определенном экспорте для www-данных для использования при выполнении исполнительной команды PHP и сумел починить это решение:
Править /etc/apache2/envvars
:
sudo nano /etc/apache2/envvars
Добавьте свой экспорт в конец файла и сохраните его.
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/texlive/2012/bin/x86_64-linux"
Apache перезапуска:
sudo service apache2 restart
Теперь, если Вы выполняете следующий PHP
<?php
$descriptorspec = array(
0 => array("pipe", "r"), // stdin
1 => array("pipe", "w"), // stdout
2 => array("pipe", "w"), // stderr
);
$process = proc_open('env', $descriptorspec, $pipes, dirname(__FILE__), null);
$stdout = stream_get_contents($pipes[1]);
fclose($pipes[1]);
var_dump($stdout);
?>
Необходимо видеть экологический путь, как установлено в файле. Кажется, что апачские команды икры под www-данными с помощью содержания того файла конфигурации только а не от и bash.bashrc и т.д. вводят файлы? Я не Могу сказать наверняка, потому что я плохо знаком с Linux.
Не уверенный, если это точно, чего Вы пытаетесь достигнуть, но надеяться, что это помогает.