• 締切済み

php5でjavacを含むシェルの実行ができない

こんにちは。シェル、php5初心者です。 まずはそれぞれのソースを記します。 j.sh ~~~~~~~~~~~~~~~~~~~~~~ #!/bin/bash javac Hello.java java Hello ~~~~~~~~~~~~~~~~~~~~~~ Hello.java ~~~~~~~~~~~~~~~~~~~~~~ public class Hello { public static void main(String[] args) { System.out.println("Hello, World"); } } ~~~~~~~~~~~~~~~~~~~~~~ test.php ~~~~~~~~~~~~~~~~~~~~~~ <?php $output = shell_exec('./j.sh'); echo "<pre>$output</pre>"; ?> ~~~~~~~~~~~~~~~~~~~~~~ 以上のプログラムを使用しtest.phpを実行したときにshell_exec関数によってWebブラウザ上にHello,Worldと表示させたいのですが、コンパイルすらされていないみたいです。どうしたらよいでしょうか。 端末から./j.shのようにシェルを実行するとしっかりとHello,Worldと結果が返ってくるのですが。 ちなみにjavacを含まないシェル(ls -l,cpなど)はphpから実行できました。 どうかよろしくお願いします。 os vine linux 4.3

みんなの回答

noname#208124
noname#208124
回答No.1

httpdを実行してるアカウントが違う所為でjavacがPATHに入って無いとか カレントディレクトリが違う所為でHello.java見つけられないとか シェルスクリプトで 2>&1 して、エラーも全部取ってみたら?

yuya9
質問者

お礼

御回答有難うございます。 httpdを実行しているアカウントとグループがapacheになっており、それを コマンドラインから入力するときと同じものに書き換えたのですが、 javacはWeb上では動きませんでした。 httpd.confのcgi環境変数の設定などが関係しているのでしょうか。

関連するQ&A