在 Linux(Debian) + PHP 的環境使用 JAVA

分類: 技術分享 作者: andrew

21 8 月 2008

1.要讓Linux的php程式能夠直接 Call java 函式來使用,就是使用 php-java-bridge

官方網站:
http://php-java-bridge.sourceforge.net/doc/index.php



2.要讓bridge功能正常必須安裝以下軟體:

a.java
b.tomcat
c.bridge
(請依序安裝)

3.如果在尚未安裝tomcat環境下先安裝bridge.會出現只能call java內建的函式而無法call自行編寫的jar.
(可之後補安裝tomcat)

4.呼叫自己的函式限定jar格式檔案.其他網站有教如何改成可以用class格式.但本人愚鈍所以試不出來(=.=")

5.Debian安裝tomcat指令 :

sudo apt-get install tomcat

6.Debian安裝bridge:

解壓縮下在的bridge tarball檔

tar xvfz php-java-bridge_5.2.0.tar.gz

進入解壓縮出來的資料夾

cd php-java-bridge-5.2.0/

phpize && ./configure --with-java=/usr/local/jdk1.6.0 --disable-backend && make
(其中--with-java=/usr/local/jdk1.6.0請輸入真實java執行環境)

建立放置bride相關參數設定檔資料夾

mkdir -p /usr/local/share/php/java

複製bride相關參數設定檔到設定的資料夾下


cp php-java-bridge-5.2.0/server/META-INF/java/* /usr/local/share/php/java

複製bridge用到的modules(so檔)到php預設的lib資料夾,php預設的lib資料夾可用phpinfo函式查詢到。

cp php-java-bridge-5.2.0/modules/* /usr/local/lib/php/20060613/
cp php-java-bridge-5.2.0/server/JavaBridge.jar /usr/local/lib/php/20060613/

複製JavaBridge.jar 到php預設的lib資料夾
如找不到JavaBridge.jar可嘗試下載bridge的j2ee版來取得

7.設定php.ini

編輯 php.ini 加上以下資料:


[java]
java.class.path= /usr/local/lib/php/20060613/
java.library.path = /usr/local/lib/php/20060613/:/usr/local/jdk1.6.0/bin/
java.java_home = /usr/local/jdk1.6.0/bin/
java.java = /usr/local/jdk1.6.0/bin/java
java.log_level = 2

重新啟動 apache 後即安裝完畢.

7.測試程式碼

<?
require_once("java/Java.inc");
require_once("java/JavaBridge.inc");

// get instance of Java class java.lang.System in PHP
$system = new Java('java.lang.System');

// demonstrate property access
echo 'Java version=' . $system->getProperty('java.version') . '<br />';
echo 'Java vendor=' . $system->getProperty('java.vendor') . '<br />';
echo 'OS=' . $system->getProperty('os.name') . ' ' .
$system->getProperty('os.version') . ' on ' .
$system->getProperty('os.arch') . ' <br />';
// java.util.Date example
$formatter = new Java('java.text.SimpleDateFormat',
"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");
echo $formatter->format(new Java('java.util.Date'));
?>

-
[參考網址]
1.linux下安裝php-java-bridge : http://blog.saycoo.com/archives/88
2.
讓 PHP 支援 Java 外掛 : http://moya.iyard.org/bin/view/Blog/BlogEntry168
3.教大家如何安裝php-java-bridge : http://blog.xuite.net/rekcah/php/8079035
4.Howto PHP / Java bridge on Debian : http://mediakey.dk/~cc/howto-php-java-bridge-on-debian/
5.快快樂樂學PHP5-PHP/Java Bridge(呼叫自訂JAVA CLASS) : http://blog.xuite.net/jameschih/java/7684705


不重要的結語:
既然友篇有滷肉飯跟豆皮壽司飯.不能免俗的就來個像吃鯛魚飯一樣的不簡單.感謝bridge的作者.

2 Responses to 在 Linux(Debian) + PHP 的環境使用 JAVA

Avatar

hasi429

九月 1st, 2009 at 7:29 下午

dear 鐵大

不好意思,實在冒昧,想請問鐵大一個問題;作業環境如下:
OS : FreeBsd 7.2
apache : apache22
php : php 5.2.10
tomcat : apache-tomcat-6.0
javaBridge : php-java-bridge_5.4.3
jdk : jdk1.6.0

我參考了許多文件來設定php-java-bridge,好不容易在phpinfo裡看到
java support Enabled
但,不知為何沒有java status這個屬性,也不知道是not running還是running,想請問鐵大該如何解決呢? Orz...

Avatar

fillano

九月 3rd, 2009 at 8:18 上午

另外一個思路,是使用Resin的Quercus。它可以讓你在tomcat等環境中使用PHP,而且跟java的整合很容易。之前就用這個試過在Google App Engine裡面跑PHP,還把CodeIgniter改到可以在上面跑。

我要留言

關於這裡

這個部落格分享了哇寶在電子商務領域的技術及資訊,希望能讓更多人一起為台灣的網路產業加油。