我编写了一个从命令行运行的 Java 应用程序。我想让用户通过一个简单的 PHP Web 界面访问它 - 它只允许他们指定某些参数,然后执行 java 应用程序并返回输出。
出于某种原因,当我尝试使用 Java 执行任何操作时,我收到“权限被拒绝”错误消息,即使是像这样简单的操作:
shell_exec('/usr/bin/java -version 2>&1');
通过浏览器运行时返回“sh:/usr/bin/java: Permission denied”。
如果我给 apache 一个 shell 帐户并以 apache 身份登录,我可以很好地执行这个命令。
如果没有关联的 tty,是否有某种设置会阻止 JVM 运行?我怎样才能让它工作?我正在运行 PHP 5.3.2。
谢谢
最佳答案
您的应用程序主机可能会受到像 AppArmor 这样的工具的限制。或 SELinux或 TOMOYO或 SMACK , 或类似的限制工具。
将 Apache 限制为允许执行 /usr/bin/whoami
但不允许执行 /usr/bin/java
将非常简单。
请您的系统管理员为您授予对 java 和您的 jar 的访问权限。
关于java - 如何在 php web 脚本中获取 java 应用程序的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3386512/