phpからshellコマンドを動かす時のお話し

phpから shell_exec() とか system() とかを使って、shellコマンドを実行しうとしたら、はまりまくった時のお話しです。

$output = `shell_exec('ll -a')`;
echo $output;

これが動かなかったわけです。
llが認識されていないような気がしたので、エイリアスじゃないのでためしたら

$output = `shell_exec('ls -lart')`;

問題なかったです。

シェルなのか実行ユーザーの権限なのかわかりませんが、コマンドもフルパスで指定すれば大丈夫な予感がしたので、

$output = `shell_exec('/bin/ls -lart')`;

みたいな感じにしたわけです。


例が分け解らない事になってますが、実際にやりたかった事は、phpからpythonスクリプトを動かしたかったって事です。
なんで、そんな変な事するのかと言われれば、phpコードに治すのがめんどかったのと、簡単にできると思っていたからで、、、
要は、こんな感じです。

// 失敗
$output = `python getTargetFile.py`;

// 成功
$output = `/user/bin/python getTargetFile.py`;