【问题标题】:storing java executable that is callable via php存储可通过 php 调用的 java 可执行文件
【发布时间】:2011-07-16 19:21:42
【问题描述】:

所以我打算让一个 PHP 站点能够使用 exec() 执行 Java 应用程序......

我的问题是,我应该在哪里存储 java 应用程序的实际 jar 文件,我应该将它们放在 Apache 的 www 中的一个文件夹中,还是应该将它们放在 apache 无法访问的外部文件夹中

这还重要吗?我担心这些选择的安全隐患......

【问题讨论】:

    标签: java php security apache exec


    【解决方案1】:

    听起来相当痛苦……你会为页面上的每一次点击启动一个 JVM。甚至不考虑安全问题,考虑这将给您的系统带来的负载。

    您可能最好使用像 Tomcat 这样的适当的 Java 服务器。

    至于放在哪里,这几乎是无关紧要的。 PHP 的 exec() 函数在文件系统级别工作,并且不会关心您的 http 文档根目录等。只要您正确设置了权限和路径,它就可以在您计算机上的任何位置。

    【讨论】:

      【解决方案2】:

      当您使用 php 中的 exec 使用 Java 时,您代表 Apache 用户运行它。所以恕我直言,Apache 可以访问这个目录。但是(正如 dog 在评论中指出的那样),它不应该在 Apaches DocumentRoot 中,或者 .jar 文件不能被 HTTP 访问。

      恕我直言,更好的架构可以包含另一个暴露 Web 服务(restfull 或 soap)的 Java 服务器(轻量级 Jetty 或 Tomcat)。您的站点应在 Java 服务器上调用此 Web 服务。另一种方法是将队列管理器放在它们之间(或简单地在数据库中创建队列)。有很多更好的解决方案。

      【讨论】:

      • 但是,它不应该在 Apaches DocumentRoot 或者 .jar 文件不能被 HTTP 访问。
      猜你喜欢
      • 1970-01-01
      • 2018-12-24
      • 2018-02-09
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      • 2011-12-27
      • 2011-03-27
      • 1970-01-01
      相关资源
      最近更新 更多