【问题标题】:Java with Drupal-6/PHPJava 与 Drupal-6/PHP
【发布时间】:2011-01-01 23:03:01
【问题描述】:

我真的不喜欢 PHP,但在 Java 中很舒服。我有一个已部署到 Apache/Linux 服务器的稳定 Drupal 安装。我不知道服务器当前是否支持Java。 (这样做需要什么?我在 Java 桌面应用程序中进行过编程,但以前从未在线过。)

为了为我的网站开发新模块,我有什么方法可以编写 Java 并以某种方式使其与 PHP 一起使用?

【问题讨论】:

  • 如果你不喜欢 PHP,为什么还要使用 Drupal?

标签: java php linux apache drupal


【解决方案1】:

要在(网络)服务器上使用 Java,您可能需要:

  • 已安装的 Java VM,
  • 一个 servlet 容器或一个完整的应用程序服务器,如果您将使用 EJB 等高级技术。

理论上,您可以在没有安装 servlet 容器的情况下运行 Web 应用程序,但这需要嵌入式 servlet 容器或进行一些黑客攻击。大多数 servlet 容器或应用程序服务器都可以用作前端 Web 服务器,但如果您决定将它们移到 Apache httpd 后面,那么使用mod_jk connector plugin,您将能够负载平衡或代理来自 Apache 的请求Web 服务器到您的 servlet 容器(注意,不仅仅是 Tomcat:Glassfish 和 JBoss 也可以使用)并隐藏 Java 容器以防止直接 Web 访问,并提供额外的安全层和负载处理。

如果您想以某种方式同时运行 PHP 和 Java,可以通过一些轻微的黑客攻击:在合适的服务器上使用 Quercus(这是 PHP 语言的 Java 实现)(我更喜欢 Glassfish v3 ),将您的应用程序打包为一个 war 文件,您将能够在 Java 应用程序服务器上运行大多数 PHP 应用程序(不,这并不意味着任何形式的迟缓)。

当然,如果您将原始 Drupal 应用程序从前端 Apache 推送回后端 Java servlet 容器,那么您将能够并行运行 Java 和 PHP 应用程序,而 Apache 剩下的唯一工作就是负载平衡。如果您有兴趣,请查看Quercus and Drupal howto。

还有一件事我忘记了:如果您想在 Java 中创建新的 Drupal 插件/模块,那只能与 Quercus 一起使用,或者如果 Java 和 PHP 应用程序通过 Web 服务或像 Protobuf 这样的跨语言框架连接或 Thrift(因此视图部分可以是用 PHP 编写的 Drupal 插件,以及在远程服务器上运行的 Java 业务逻辑)。请注意,我不是经验丰富的 Drupal 插件开发人员。

【讨论】:

  • 尽管这个答案在技术上是正确的(我肯定会自己尝试一下,只是为了好玩,谢谢 Tamás!),一个人不能讨厌 PHP 以至于以这种方式实际编写 drupal 模块。即使合并 java 类会更容易,在 PHP 中编写 drupal 模块仍然会更容易。
  • 确实 :) 这只是一个集成混合语言应用程序的简单解决方案(而且 Quercus 在非常适合的服务器上可以做得非常好)。
【解决方案2】:

您最好还是硬着头皮用 PHP 开发任何自定义模块。即使您必须学习一点 PHP,它也会更简洁、更易于维护,甚至可能更快。

【讨论】:

    【解决方案3】:

    我感受到你的痛苦,但认真学习 PHP 并用 PHP 为 Drupal 编写模块。 您会惊讶于 Drupal API 的编写和文档记录如此之好。

    如果您正在运行另一个系统并且需要两者进行通信,则可以使用 Java。 Java 可以充当比较用户表、更新它们等的中间人。

    这也可以在 PHP 中完成,但 Java 可能更高效(不要引用我的话)

    在我的情况下,我在 MySQL 上运行 PHP,而另一个系统在 .NET/SQL Server 上,所以我打算使用 java 导出数据并管理两者之间的中间表,因此 PHP 或 .NET 都不必在其上运行大型查询他们各自的数据库。

    虽然为了将语言保持在最低限度,但仍有可能坚持使用 PHP...仍在考虑中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      • 2012-06-11
      相关资源
      最近更新 更多