2010-01-06 64 views
1

我真的不喜歡PHP,但在Java中很舒服。我有一個穩定的Drupal安裝,已經部署到Apache/Linux服務器。我不知道服務器目前是否支持Java。 (這需要做什麼?我有Java的桌面應用程序編程,但從來沒有在線之前。)Java與Drupal-6/PHP

爲了開發我的網站的新模塊,有沒有什麼辦法可以編寫Java並以某種方式與它一起工作PHP?

+2

爲什麼你使用Drupal如果你不喜歡PHP? – 2010-01-06 12:41:44

+0

這是傳統代碼。 – 2010-01-07 23:17:56

回答

4

要在(網絡)服務器上使用Java,你可能需要:

  • 安裝的Java虛擬機,
  • 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的插件/模塊,那隻能用櫟,或者如果Java和PHP應用程序的工作通過Web服務或跨語言的框架等連接Protobuf或Thrift(所以視圖部分可以是用PHP編寫的Drupal插件,以及運行在遠程服務器上的Java商業邏輯)。請注意,我不是經驗豐富的Drupal插件開發人員。

+0

雖然這個答案在技術上是正確的(我肯定會自己嘗試一下,只是爲了它的樂趣,謝謝Tamás!),但是我們不能憎恨PHP,所以實際上用這種方式編寫drupal模塊。即使整合java類更容易,在PHP中編寫drupal模塊仍然會更容易。 – EricSchaefer 2010-01-06 14:06:13

+0

的確如此:)這只是一個簡單的解決方案,用於集成混合語言應用程序(並且Quercus可以在一個非常合適的服務器上出色地完成)。 – 2010-01-06 15:50:48

3

你簡直咬牙切齒,在PHP中開發任何自定義模塊都好多了。即使你必須學習一點PHP,它也會更清潔,更易維護,甚至更快。

1

我感覺你的痛苦,但認真學習PHP和用Drupal編寫PHP模塊。 您會驚訝於Drupal API的編寫和記錄效果如何。

如果您有另一個系統正在運行並需要兩者進行通信,則可以使用Java。 Java可以是中間人來比較用戶表,更新它們,等

這也可以在PHP中完成,但Java的可能是更有效的(不要引用我)

在我的情況我運行PHP在MySQL和另一個系統是在.NET/SQL Server上,所以我打算使用java導出數據並管理這兩者之間的中間表,因此PHP或.NET都不得在其各自的數據庫上運行大型查詢。

雖然爲了讓語言保持在最小範圍內,但還是有一種病態的堅持PHP的...仍然在思考它。