调用shell_exec显示来自php的奇怪行为

时间:2013-07-04 06:09:22

标签: java php linux fedora 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也会出现空白屏幕。即使是“你好世界”也不会被打印出来。

尽管上面讨论的java命令在终端没有任何问题的情况下工作。我的操作系统是fedora。

这种奇怪的行为背后的原因是什么?我怎样才能克服这种行为呢?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我在OSX上使用MAMP遇到了这个问题。我认为它应该是同一个问题。尝试打开MAC中的文件envvars在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。 这对我来说可以!我希望你能享受它。祝你好运!

相关问题