0

我在 Web 服务器上运行 Java 程序并传递来自 PHP 变量的参数,我遇到了一些令人困惑的问题。当我从 shell 运行它并使用 PHP 从 shell_exec() 运行它时,我正在使用的 Java 程序似乎表现出不同的行为。

如果我使用像 Putty 这样的工具从命令行执行程序,如下所示:

ksh runexample.ksh ClassName methodName

它运行正常,这意味着程序发送一个请求并在大约 20 秒后从它连接的网关服务器收到响应。然后,通过在外部数据库中查看结果记录,我可以看到通信成功。

现在,当我使用 PHP 脚本执行该程序时,问题就出现了。

shell_exec('path/ssh user@xxx.xx.xxxx.xx.x "cd /path/path/examples/ ksh runexample.ksh ClassName methodName;')

如果我加载这个 PHP 脚本,并 var_dump() 输出,程序似乎加载了;但它给了我来自 Java 程序的简短通用消息,例如“程序在连接模式下运行等”,并且不输出通常的响应。PHP 脚本几乎立即使用此输出加载页面。此外,不会在外部数据库中创建记录。

我在脚本中有 set_time_limit(0),但是这个问题可能是由于 shell_exec() 在 Java 程序中的请求/响应完成之前以某种方式超时吗?

感谢您提供任何见解/类似经验,感谢您的帮助!

4

1 回答 1

2

这可能是因为.profile以您的方式运行应用程序时没有加载(或另一个)文件。

我做了一些与你似乎在这里做的事情非常相似的事情,最后在这里发布了这个问题,作为这个问题的后续,这两个问题现在都可能对你有用。

于 2012-12-03T16:44:53.040 回答