如果我運行運行了shell_exec( '的Java')在命令行PHP任何回報
which java
獲得正確的輸入(/usr/java/.../bin/java)。但是,如果我在一個PHP腳本運行:
<?
echo 'java. ' . shell_exec('which java');
echo 'ls. ' . shell_exec('which ls');
?>
沒有獲取打印出的Java,但我得到了它LS正確的結果......
如果我運行運行了shell_exec( '的Java')在命令行PHP任何回報
which java
獲得正確的輸入(/usr/java/.../bin/java)。但是,如果我在一個PHP腳本運行:
<?
echo 'java. ' . shell_exec('which java');
echo 'ls. ' . shell_exec('which ls');
?>
沒有獲取打印出的Java,但我得到了它LS正確的結果......
兩件事:
因此,例如:
echo shell_exec('/usr/java/jdk6/bin/java -cp myJars.jar MyMainClass arg1 2>&1");
謝謝,正是我在過去30分鐘內所尋找的。添加2>&1工作。不知道爲什麼...... – giorgio79 2011-11-05 10:06:46
我只是碰到了這個問題爲好。我試圖確定qrencode
實用程序是否安裝在(任何)服務器上,如果沒有,則記錄/警告/正常退出。
考慮到程序應該始終處於標準路徑,我在which
命令前加上了二進制文件的可能位置,但仍然遵守$PATH
可能在系統上的某種定義。我想你可以使用與常見的Java路徑這種做法,太:
shell_exec('PATH="$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" '.
'which qrencode');
服務器進程沒有它的PATH環境變量設置。 – 2010-09-24 19:33:49
如果我發送硬編碼路徑,它的工作原理。然後我嘗試將它包含在一個帶有環境設置的bash文件腳本中,但它也沒有工作... – 2010-09-25 16:05:34