php調用java的完整安裝配置說明文檔

來源:互聯網
上載者:User
1. Windows安裝配置過程

1.1. Apache和php的安裝配置

Apache和php可以使用解壓版、安裝版、套件版均可。

以下以解壓版為例:

1、解壓版無需安裝,解壓後放到任意目錄下即可。

2、配置apache對php的支援,配置過程,自行參見網路。

3、demo測試使用的軟體版本為:apache2.2.6、php5.3.5、javabridge5.4.4;軟體版本可自行選擇,但要保證能相互相容支援。

1.2. Javabridge的配置

1、確認配置好php 與 apache 環境後,配置javabridge,使php支援java調用。

即將JavaBridge的jar包和對應的java目錄放入任意目錄下。

2、在php的項目中引入java目錄的Java.inc(包含Java.inc與JavaProxy.php),如: require_once ( "../java/Java.inc" );

注意引入的路徑問題,即../java/Java.inc部分;參考demo的secUtil.php頁面引入方式。

3、將php調用的jar包放入到系統所使用的jre的lib下的ext下,如C:\Java\jdk1.6.0_20\jre\lib\ext

4、啟動JavaBridge即可。

Javabridge啟動有三種方法:

(1)、直接雙擊啟動jar包。

(2)、可以cmd指令運行start java -jar JavaBridge.jar SERVLET_LOCAL:8080(在ext目錄下)

(3)、可以使用批處理運行第二種方法(批處理與jar包同一目錄)

1.3. 運行phpDemo

1、驗證javabridge是否正常,可通過調用java api測試,如:test.php

require_once("java/Java.inc");

header("content-type:text/html; charset=utf-8");

// get instance of Java class java.lang.System in PHP

$system = new Java('java.lang.System');

$s = new Java("java.lang.String", "php-java-bridge config...

");

echo $s;

// demonstrate property access

print 'Java version='.$system->getProperty('java.version').'
';

print 'Java vendor=' .$system->getProperty('java.vendor').'
';

print 'OS='.$system->getProperty('os.name').' '.

$system->getProperty('os.version').' on '.

$system->getProperty('os.arch').'
';

// java.util.Date example

$formatter = new Java('java.text.SimpleDateFormat',

"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

print $formatter->format(new Java('java.util.Date'));

?>

註:注意修改裡面的引入路徑。

2、如果javabridge,啟動apache和javabridge;訪問phpDemo的index.php即可。

注意:

1、如果訪問報錯NOTICE修改php.ini設定檔,error_reporting = E_ALL & ~E_NOTICE

2、請保持JavaBridge與Java.inc的版本的一致。

3、調用java的過程如有錯誤,會通過javabridge視窗和頁面顯示出來,如調用的方法名不存在。


2. Linux安裝配置過程

2.1. Apache安裝

2.1.1. 安裝版本

httpd-2.2.29.tar.gz

2.1.2. 安裝步驟

tar ?zxvf httpd-2.2.29.tar.gz

./configure

make

make install

2.1.3. 啟動apache

安裝成功後啟動apache:/usr/local/apache2/bin/apachectl start

查看是否啟動成功:ps -ef |grep httpd 執行後,出現如下即啟動成功。

2.1.4. Apache FAQ

注意:

1、./configure 時會出現如下提示(未安裝gcc編譯器時提示):

configure: error: in `/usr/local/tongSoftware/httpd-2.2.29/srclib/apr':

configure: error: no acceptable C compiler found in $PATHSee `config.log' for more detailsconfigure failed for srclib/apr

即系統提示未安裝gcc編譯器,則安裝該編譯器:yum -y install gcc 即可。

2、make和make install 到出現如下即安裝成功:

......

mkdir /usr/local/apache2/man

mkdir /usr/local/apache2/man/man1

mkdir /usr/local/apache2/man/man8

mkdir /usr/local/apache2/manual

make[1]: Leaving directory `/root/aphp/httpd-2.2.29'

[root@device httpd-2.2.29]#

找到安裝路徑地方,啟動apache即可。

3、如果安裝的是高版本或部分其他版本的apache,如httpd-2.4.12.tar.gz,編譯時間會出現如下錯誤提示:

........

checking for APR... no

configure: error: APR not found . Please read the documentation.

安裝解決方案如下:

解決方案如下:

#./configure --prefix……檢查編輯環境時出現:

checking for APR... no

configure: error: APR not found . Please read the documentation.

可以用./configure ?help | grep apr 查看協助。

--with-included-apr Use bundled copies of APR/APR-Util

--with-apr=PATH prefix for installed APR or the full path to apr-config

--with-apr-util=PATH prefix for installed APU or the full path to

安裝APR(Apache Portable Runtime )

[root@localhost ~]# cd /tmp/52lamp/ //源碼存放位置

[root@localhost 52lamp]# tar -zxvf apr-1.4.2.tar.gz //unzip -o apr-1.4.2.zip

[root@localhost 52lamp]# cd apr-1.4.2

[root@localhost apr-1.4.2]# ./configure

[root@localhost apr-1.4.2]# make

[root@localhost apr-1.4.2]# make install

再次檢查編譯環境出現

checking for APR-util... no

configure: error: APR-util not found . Please read the documentation.

[root@localhost httpd-2.2.16]# ./configure ?help | grep apr-util

--with-apr-util=PATH prefix for installed APU or the full path to

[root@localhost 52lamp]# tar -zxvf apr-util-1.3.9.tar.gz

[root@localhost 52lamp]# cd apr-util-1.3.9

[root@localhost apr-util-1.3.9]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

[root@localhost apr-util-1.3.9]# make

[root@localhost apr-util-1.3.9]# make install

./configure仍提示APR-util not found,增加--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util後出現

configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

[root@localhost httpd-2.2.16]# ./configure ?help | grep pcre

--with-pcre=PATH Use external PCRE library

[root@localhost 52lamp]# unzip -o pcre-8.10.zip

[root@localhost 52lamp]# cd pcre-8.10

[root@localhost cd pcre-8.10]# ./configure --prefix=/usr/local/pcre

[root@localhost cd pcre-8.10]# make

[root@localhost cd pcre-8.10]# make install

繼續安裝Apache/httpd,./configure 時加上參數 --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre,這個問題就解決了。

註:httpd-2.4.12.tar.gz的安裝此過程未親測。

2.2. 安裝php

2.2.1. 安裝版本

php-5.4.40.tar.gz

2.2.2. 安裝步驟

tar ?zxvf php-5.4.40.tar.gz

./configure --prefix=/usr/local/php/ --with-apxs2=/usr/local/apache2/bin/apxs (注意此處編譯,一定要將apache模組編譯進去,及--with-apxs2=/usr/local/apache2/bin/apxs)

make

make install

2.2.3. Php FAQ

注意:

1、如果沒有安裝libxml2-python和libxml2-devel包,編譯時間會出現如下錯誤:

configure: error: xml2-config not found. Please check your libxml2 installation

J解決方式:安裝libxml2-python和libxml2-devel包即可:yum -y install libxml2-python libxml2-devel

2、make時出現如下錯誤

1.Perl is not installed

2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs

3. Apache was not built using --enable-so (the apxs usage page is displayed)

The output of /usr/local/apache/bin/apxs follows:./configure: line 6669: /usr/local/apache/bin/apxs: Permission denied

解決方式:1、先安裝perl包;2、apxs許可權問題,即添加可執行許可權;

2.2.4. 配置php

建立設定檔到指定設定檔目錄中

[root@localhost php-5.4.40]# cp php.ini-dist /usr/local/php/lib/php.ini

2.2.5. 添加Apache對PHP支援

[root@localhost php-5.4.40]# vi /usr/local/php/lib/php.ini

找到AddType application/x-gzip .gz .tgz,在此下面增加一行

AddType application/x-httpd-php .php .php3

重啟apache即可。

寫index.php檔案,測試支援是否正常。

phpinfo();

?>

2.3. 安裝配置javabridge

2.3.1. 免安裝方式配置javabridge

1、將javabridge.jar放置到任何位置,一般放在php檔案夾內,如/usr/local/php/etc下

2、將與此javabridge.ja r配套的java檔案夾放到檔案任何位置,一般放在php檔案夾內,如/usr/local/php/etc下,然後注意引用的路徑問題。

如:require_once ( "/usr/local/php/etc/java/Java.inc" );

3、將所需jar包放到jre下(即/usr/java/jdk1.6.0_20/jre/lib/ext),然後項目引用

//linux

java_require('/usr/java/jdk1.6.0_20/jre/lib/ext/SVSClient.jar');

java_require('/usr/java/jdk1.6.0_20/jre/lib/ext/BJCA_LOG.jar');

4、啟動javabridge

java -jar JavaBridge.jar SERVLET_LOCAL:8080 此命令啟動不能關閉視窗,不會後台運行

java -jar JavaBridge.jar SERVLET_LOCAL:8080 & 此命令啟動能關閉視窗,後台運行(有時候需要先ctrl+c中斷再關閉視窗)

5、查看是否啟動成功 ps -ef |grep 8080,啟動成功:

6、驗證javabridge是否正常,可通過調用java api測試,如:test.php

require_once("java/Java.inc");

header("content-type:text/html; charset=utf-8");

// get instance of Java class java.lang.System in PHP

$system = new Java('java.lang.System');

$s = new Java("java.lang.String", "php-java-bridge config...

");

echo $s;

// demonstrate property access

print 'Java version='.$system->getProperty('java.version').'
';

print 'Java vendor=' .$system->getProperty('java.vendor').'
';

print 'OS='.$system->getProperty('os.name').' '.

$system->getProperty('os.version').' on '.

$system->getProperty('os.arch').'
';

// java.util.Date example

$formatter = new Java('java.text.SimpleDateFormat',

"EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

print $formatter->format(new Java('java.util.Date'));

?>

註:注意修改裡面的引入路徑。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.