TeX Live 2012を手動でインストールした後、Apacheユーザー(/usr/local/texlive/2012/bin/x86_64-linux
)のwww-data
をPATH
環境に追加しようとしています。
/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
私はこの問題の原因を理解できず、助けに感謝します。
PHP execコマンドを実行するときに使用するwww-dataの特定のエクスポートが必要で、このソリューションを一緒にまとめることができるという同様の問題がありました。
編集/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);
?>
ファイルに設定されている環境パスが表示されます。 Apacheは、bash.bashrcなどのタイプファイルからではなく、その構成ファイルの内容のみを使用してwww-dataの下にコマンドを生成するようです。私はLinuxが初めてなので、はっきり言えません。
これがまさにあなたが達成しようとしているものであるかどうかはわかりませんが、それが役立つことを願っています。
https://help.ubuntu.com/community/EnvironmentVariables 「システム全体の環境変数」の下にある最初のメモで質問に答えます。