2013-07-04 33 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。 它适合我!我希望你能喜欢它。好运!