3

我可以看到结果:

echo exec("whoami"); // will output "www-data"

但是,如果我尝试运行真实世界的命令:

echo exec("casperjs myscript.js /foo/bar");

然后什么也没有发生:

  • 没有输出(casperjs 脚本应该输出一些标准输出日志消息)
  • 无操作(脚本应该使用绝对路径创建图像,但它没有)
  • PHP没有错误
  • shell命令没有输出

我在 StackOverflow 上进行了搜索,并尝试了其他方法(首先在 shell 中进行了测试,以确保它们有效):

echo exec("casperjs /absolute/path/to/myscript.js");
echo exec("/usr/local/bin/casperjs /absolute/path/to/myscript.js");

我还测试了其他组合,使用system()shell_exec()甚至passthru() ,但它总是一样的:没有错误,没有输出,甚至在 php 日志文件中,所以很难理解这个问题:(

4

1 回答 1

2

尝试echo exec("casperjs myscript.js /foo/bar 2>&1");将标准错误重定向到标准输出,否则不会显示。

这可能是您的 cmdline 中的错误,或者 casperjs 可能不在您的 $PATH 中,等等。

于 2013-01-31T18:05:16.463 回答