Linux 下php扩展java的相关步骤以及疑难解析

在CentOS 5.3下配置 php 调用 java 的相关步骤以及疑难解析,主要问题如下:
1)使用phpize建立php扩展时,出现:Cannot find config.m4. ;
2)configure失败:configure: error: /bin/sh './configure.gnu' failed for server;

[b]第一步:下载php-java-bridge源码包[/b]
php-java-bridge下载相关地址([b][color=red]推荐[/color][/b]):
[url]http://ftp.heanet.ie/disk1/sourceforge/p/project/ph/php-java-bridge/OldFiles/[/url]
# [b][color=blue]wget http://ftp.heanet.ie/disk1/sourceforge/p/project/ph/php-java-bridge/OldFiles/php-java-bridge_4.0.7.tar.gz[/color][/b]


[b]第二步:Centos下安装 php-java-bridge[/b]
1、解压 php-java-bridge 源码包
# [b][color=blue]tar xzvf php-java-bridge_4.0.7.tar.gz[/color][/b]

2、开始安装 php-java-bridge
# [b][color=blue]cd php-java-bridge-4.0.7[/color][/b]
# [b][color=blue]/usr/local/php/bin/phpize[/color][/b]
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519

3、执行 configure 命令
# [b][color=blue]./configure --with-java=/usr/local/java,/usr/local/java/jre[/color][/b]

4、执行 make 命令
# [b][color=blue]make[/color][/b]

5、执行 make install 命令
# [b][color=blue]make install[/color][/b]
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/

[b]第三步:配置 php 扩展 java[/b]
在 php.ini 文件的末尾添加如下内容:
# [color=blue][b]vi /usr/local/php/etc/php.ini[/b][/color]
[Java]
java.class.path="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613"
java.java_home="/usr/local/java"
java.library=/usr/local/java/lib
java.library.path="/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613"
extension_dir=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613
extension=java.so

[b]第四步:重启apache服务[/b]
# [color=blue][b]/usr/local/apache/bin/apachectl restart[/b][/color]

[b]第五步:测试php调用java 是否成功[/b]
1) 新建一个 test.php
# [color=blue][b]vi test.php[/b][/color]
<?php
$system=new Java("java.lang.System");
print 'Java version='.$system->getProperty('java.version');
echo "程序已经断开....";
?>

2) 测试
# [color=blue][b]php test.php[/b][/color]
Java version=1.6.0_01程序已经断开....

若出现如上的 “Java version=1.6.0_01程序已经断开....”,说明安装成功!


==================================================================================================================================================
[b]【备注】[/b]

(1)在安装php-java-bridge_6.2.1.tar.gz时,出现如下问题,导致不能安装:
下载URL:[url]http://sourceforge.net/projects/php-java-bridge/[/url]

#[b] [color=blue]/usr/local/php/bin/phpize[/color] [/b]
Cannot find config.m4.
Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module

在此,可能是由于php或php-java-bridge的版本问题,于是更换php-java-bridge较低版本,如:php-java-bridge_3.2.1.tar.gz 等。

# [b][color=blue]/usr/local/php/bin/phpize [/color][/b]
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable is set correctly and then rerun this script.

以上说明 autoconf 软件包没有安装,在CentOS 系统中可以执行如下命令:
#[b] [color=blue]sudo yum install autoconf[/color][/b]

注意:安装autoconf软件包时,需要依赖 imake 软件包。但直接执行 sudo yum install autoconf 会自动安装完成。

然后,再执行 phpize 命令:

# [b][color=blue]/usr/local/php/bin/phpize [/color][/b]
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519

(2)执行 configure 命令时
# [color=blue][b]./configure --with-java=/usr/local/java,/usr/local/java/jre[/b][/color]
......
creating libtool
appending configuration tag "CXX" to libtool
configure: creating ./config.status
config.status: creating config.h
configure: configuring in server
configure: running /bin/sh './configure.gnu' --prefix=/usr/local/php '--with-java=/usr/local/java,/usr/local/java/jre' --cache-file=/dev/null --srcdir=.
./configure.gnu: line 5: aclocal: command not found
autoheader: error: AC_CONFIG_HEADERS not found in configure.in
configure.in:15: error: possibly undefined macro: AM_INIT_AUTOMAKE
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.in:16: error: possibly undefined macro: AM_CONFIG_HEADER
configure.in:20: error: possibly undefined macro: AM_PROG_GCJ
configure.in:21: error: possibly undefined macro: AC_PROG_LIBTOOL
configure.in:66: error: possibly undefined macro: AM_CPPFLAGS
configure.in:195: error: possibly undefined macro: AM_CONDITIONAL
./configure.gnu: line 11: libtool: command not found
./configure.gnu: line 14: automake: command not found
configure: error: cannot find install-sh or install.sh in . ./.
Back-end configuration failed.
Please install the recommended autoconf, libtool and automake versions
or disable back-end configuration and use the pre-compiled J2EE back-end:

./configure --disable-backend --with-java=<JAVA_HOME>

configure: error: /bin/sh './configure.gnu' failed for server

若出现以上错误,请根据推荐安装:
# [color=blue][b]./configure --disable-backend --with-java=/usr/local/java[/b][/color]

即可解决。
经过我的多次尝试,建议不使用这种方法(使用参数 --disable-backend),否则相应的扩展不成功。

(3)JavaBridge.jar的启动问题
一般在Linux下安装完php-java-bridge,重启Apache之后,调用 JavaBridge.jar包的程序会自动启动。
查看是否启动,使用如下命令:
#[color=blue] [b]ps -ef | grep JavaBridge.jar[/b][/color]

若没有自动启动,网上还有另外一种启动方式,如下:
# [color=blue][b]java -jar Javabridge.jar SERVLET:8080 3 JavaBridge.log[/b][/color]
(不可断开!)


-----------------------------------------------------------------------------------------------------------------------------------------------
Author:Zheng Rongfeng
Date:From Nov 10, 2010 to Nov 28th, 2010
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值