存储可通过php调用的Java可执行文件


storing java executable that is callable via php

所以我计划有一个PHP站点能够使用exec()....执行java应用程序

我的问题是,我应该在哪里存储java应用程序的实际jar文件,我应该把它们放在Apache的www文件夹之一,或者我应该把它们放在Apache无法访问的外部文件夹

这有关系吗?我关心的是这些选择的安全含义....

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

你最好使用一个合适的Java服务器,比如Tomcat。

至于放在哪里,这基本上是无关紧要的。PHP的exec()函数在文件系统级别工作,不关心http文档的根目录之类的东西。只要你正确设置了权限和路径,它可以在你的机器上的任何地方。

当你使用Java使用exec从php你运行它代表Apache用户。所以Apache可以访问这个目录。但是(正如dog在注释中指出的那样),它不应该在Apaches的DocumentRoot中,或者.jar文件不能通过HTTP访问。

IMHO更好的架构可以包含另一个Java服务器(轻量级Jetty或Tomcat)公开web服务(restful或soap)。您的站点应该在Java服务器上调用此web服务。另一种方法是在它们之间放置队列管理器(或者简单地在数据库中创建队列)。有很多更好的解决方案。