【问题标题】:Integrate a php module in a Java web application在 Java Web 应用程序中集成 php 模块
【发布时间】:2011-07-19 20:34:54
【问题描述】:
我正在使用 j2ee 技术开发一个企业应用程序。我也有一些 php 应用程序。我想在我的企业应用程序中合并 php 应用程序以增强功能,而无需重写 j2ee 中的代码。谁能建议我如何做到这一点。我对此做了一些研究,发现了以下选项
- PHP 和 Java 桥 - 在此我将在 apache 服务器后面运行 tomcat。 php 模块将在tomcat 中的apache 和j2ee 应用程序中。这似乎与我希望我的应用程序运行的方式相反。当用户在 j2ee 应用程序中注册时,还将使用 php 中的模块构建。所以我希望我的 tomcat 服务器在前面。
- 在tomcat上安装php,在tomcat服务器上运行php模块。我多次尝试使用 PHP5+ 和 tomcat6+ 进行配置,但无法做到这一点。我也找不到合适的 php & tomcat 版本组合,可以一起工作。
请帮助我找到最佳选项(也可以为任何新选项开放),同时牢记应用程序性能。
【问题讨论】:
标签:
php
jakarta-ee
apache2
tomcat6
【解决方案1】:
在 Apache httpd 上运行 PHP 部分,在“后面”运行 Tomcat 上的 java 部分,这并没有错。 Tomcat 在 apache 服务器后面的事实只是连接流的问题,但从用户 POV 来看,/forum/page.php 将由 PHP 处理,而 /supercomputation/dothat 将由 java 处理。
唯一的问题是如何将两者放在同一个页面上,如果需要,因为在这种情况下,我脑海中只有服务器端包含、iframe 或 javascript。
另一种方法是在单独的服务器上安装 PHP,甚至在不同的端口上安装另一个 httpd,最终只监听 127.0.0.1,然后使用 java 服务器端组件“获取”PHP 输出并将其合并到页面中由tomcat生成。
这听起来可能是个 hack,但一点也不难,它已经得到许多框架的支持,而且我已经看到大量的网站在生产中使用基于 Java 的“前端”,它聚合了来自其他 PHP 和 Python 的内容子系统。
无论您决定采用何种解决方案,您都需要在两个系统之间进行一些协调……例如,对用户进行单一身份验证。如何做到这一点在很大程度上取决于这些应用程序的设计方式,并且可能需要在这里和那里进行一些调整。