2013-07-04 32 views
0

下面的PHP代碼作品怪異的行爲和我得到的輸出:調用了shell_exec表示從PHP

<?php 

echo 'hello world'; 
echo shell_exec('ls -la'); 

?> 

// Output 
hello worldtotal 2064 drwxrwxrwx. 3 root root 4096 Jul 4 10:26 . drwxr-xr-x. 4 root root 4096 Jul 4 10:17 .. -rw-rw-r--. 1 arun arun 2089447 Jul 3 11:09 cakephp-cakephp-2.3.6-0-gd10df32.zip -rw-r--r--. 1 root root 32 Jun 18 18:01 info.php drwxrwxrwx. 7 arun arun 4096 Jul 3 12:23 nykkos -rw-r--r--. 1 arun arun 76 Jul 4 10:26 test.php 

下面的代碼不起作用:

<?php 

echo 'hello world'; 
echo shell_exec("java -jar /var/www/html/nyk/app/webroot/Converter.jar $id"); 

?> 

它只是顯示空白屏幕。即使在上面的php代碼中使用簡單的java -version,也會產生空白屏幕。即使是'hello world'也沒有被打印出來。

上面討論的java命令在終端沒有任何問題的情況下工作。我的操作系統是Fedora。

這種奇怪的行爲背後的原因是什麼,我該如何克服這一點?

任何幫助,非常感謝。

+0

有關於此的任何想法? – user264953

+0

看起來像一個權限問題。 – devnull

+0

no..permission是777 – user264953

回答

1

我有這個問題在OSX上使用MAMP。我認爲這應該是同一個問題。嘗試打開MAC位於MAMP/Library/bin/envvars上的文件環境。嘗試評論if和else的四行。這將看起來像:

#if test "x$DYLD_LIBRARY_PATH" != "x" ; then 
# DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH" 
#else 
# DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib" 

不要忘記重置Apache。 它適合我!我希望你能喜歡它。好運!