close

Querus介紹

Quercus是Caucho Technology公司為resin application server開發之100%以Java實作的PHP 5引擎(required JDK 1.5)。

Quercus可以讓PHP程式在JVM上執行,下面介紹如何使用Quercus搭配resin來整合PHP與Java。

  
(一) 前置作業:安裝JDK >=1.5版。

(二) 安裝resin application server及Quercus

1. 下載:
首先到Caucho Technology公司的首頁(http://www.caucho.com/)下載resin application server的zip文件(內含Quercus)

2. 解壓縮並安裝:
將其解壓縮到某個目錄$RESIN_HOME,例如:windows環境下的c:esin。

3. 啟動:
啟動$RESIN_HOME下的httpd.exe,使用瀏覽器連接http://localhost:8080/
如果可以看到成功執行的畫面,代表resin application server及Quercus已成功安裝。

(三) 佈置.java程式:
將 HelloService.java放在$RESIN_HOME/webapps/ROOT/WEB-INF/classes/hello/目錄下。HelloService.java在被啟用時,會自動被編譯成class文件。

(四) 撰寫PHP呼叫java的程式
撰寫PHP呼叫HelloService.java的程式,將sayHello2.php放在
$RESIN_HOME/webapps/ROOT/ 目錄下。

List-5 sayHello2.php

 

(五) 使用瀏覽器觀看
使用瀏覽器觀看連接結果http://localhost:8080/sayHello2.php
resin application server就會把$RESIN_HOME/webapps/ROOT/sayHello2.php
送給Quercus轉換成相對應的java程式,然後編譯、執行,
最後resin application server回傳"Java say hello to Jason",顯示在瀏覽器畫面。

 使用Quercus搭配resin整合PHP與Java只需要安裝JDK、resin application server(內含Quercus),若要連接資料庫才需再安裝其他資料庫伺服器,如:MySQL Server,環境的設置比起SOAP與PHP/Java Bridge整合方式來得簡單。
但Quercus與PHP/Zend Engine會有相容性的問題。

三、PHP/Java Bridge
   
 Java和script語言的介面定義於JSR 223,JSR是Java Specification Requests的簡寫。JSR 223規定了從script語言建立Java類別實體、呼叫方法以及取得結果物件的介面,也規定了從Java呼叫script語言的方法、轉換參數以及傳回值的方法。下面介紹如何使用PHP/Java Bridge套件讓PHP使用Java程式庫,PHP/Java Bridge是JSR 223之PHP 5的Java介面實作。
   
(一) 前置作業:
安裝PHP >=5.0版、
JDK >=1.4.2版、
Apache HTTP Server >=2.0版、
Tomcat(使用port 8080)。

(二) 安裝PHP/Java Bridge套件

  1. 首先到PHP/Java Bridge網站的首頁(http://php-java-bridge.sourceforge.net/doc/),點選「download」可以連到SourceForge.net,選擇下載php-java-bridge_j2ee.zip文件,解壓縮後,可以取得JavaBridge.war文件。將Tomcat的伺服器配置中的unpackWARs設為True,然後將JavaBridge.war複製到Tomcat的webapps目錄下。重新啟動 Tomcat,即可在webapps目錄下看到JavaBridge這個目錄。
  2.  將JavaBridge目錄下的java子目錄完整複製到$PHP_INCLUDE目錄,並將$PHP_INCLUDE目錄加到php.ini的include_path。例如:若$PHP_INCLUDE是c:\php5\pear,則include_path=".;c:\php5\pear"。java子目錄內包含使用PHP實作的PHP/Java Bridge原始程式碼。

(三) 將程式放在Tomcat目錄下的webapps/JavaBridge/WEB-INF/classes/hello/ 中,並編譯之。

(四) 撰寫PHP調用HelloService.java的程式。將sayHello3.php放在Apache Server的DocumentRoot目錄下。

sayHello3.php

 

(五) 使用瀏覽器連接http://localhost/sayHello3.php,則Apache Server會將sayHello3.php交給PHP/Zend Engine編譯、執行。
當PHP呼叫Java程式庫時,PHP/Java Bridge (java子目錄下的php程式)會將此呼叫轉換成 *.phpjavabridge文件格式,然後傳送到Tomcat下JavaBridge的php.java.servlet.PhpJavaServlet處理,最後透過PHP/Java Bridge回傳結果給PHP。
程式執行後可看到"Java say hello to Jason"顯示在瀏覽器畫面。

 

小結
 
 隨著Web的蓬勃發展與大量應用,使用單一語言來開發Web應用程式未必是最有效率的方式。Web程式設計開發人員瞭解如何使用PHP與Java兩種語言整合開發Web程式

參考資料

【1】SOAP - Wikipedia, the free encyclopedia. Available at URL 
http://en.wikipedia.org/wiki/SOAP

【2】Apache Axis2. Available at URL http://ws.apache.org/axis2/

【3】Quercus: PHP in Java. Available at URL 
http://www.caucho.com/resin-3.0/quercus/

【4】PHP/Java Bridge. Available at URL http://php-java-bridge.sourceforge.net/doc/

【5】JSR 223: Scripting for the JavaTM Platform. Available at URL 
http://jcp.org/en/jsr/detail?id=223

 

arrow
arrow
    全站熱搜

    白努力電腦日記 發表在 痞客邦 留言(0) 人氣()