`

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

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

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


第二步:Centos下安装 php-java-bridge
1、解压 php-java-bridge 源码包
    # tar xzvf php-java-bridge_4.0.7.tar.gz

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

3、执行 configure 命令
     # ./configure --with-java=/usr/local/java,/usr/local/java/jre

4、执行 make 命令
    # make

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

第三步:配置 php 扩展 java
    在 php.ini 文件的末尾添加如下内容:
    # vi /usr/local/php/etc/php.ini
    [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

第四步:重启apache服务
    # /usr/local/apache/bin/apachectl restart

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

2) 测试
    # php test.php
    Java version=1.6.0_01程序已经断开....

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



==================================================================================================================================================
【备注】

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

[root@zrf php-java-bridge-6.2.1]# /usr/local/php/bin/phpize
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 等。

[root@zrf php-java-bridge-3.2.1]# /usr/local/php/bin/phpize
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 系统中可以执行如下命令:
    # sudo yum install autoconf

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

然后,再执行 phpize 命令:

[root@zrf php-java-bridge-3.2.1]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version:         20041225
Zend Module Api No:      20060613
Zend Extension Api No:   220060519

(2)执行 configure 命令时
[root@zrf php-java-bridge-3.2.1]# ./configure --with-java=/usr/local/java,/usr/local/java/jre
......
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

若出现以上错误,请根据推荐安装:
[root@zrf php-java-bridge-3.2.1]# ./configure --disable-backend --with-java=/usr/local/java

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

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

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


-----------------------------------------------------------------------------------------------------------------------------------------------
Author:Zheng Rongfeng
Date:From Nov 10, 2010 to Nov 28th, 2010


分享到:
评论
1 楼 chenjun1634 2012-12-04  
LZ,使用参数 --disable-backend--相应的扩展不成功,
./configure --with-java=/usr/local/java,/usr/local/java/jre失败你是如何解决的?

相关推荐

    远程接入--网络疑难解析(中文).pdf

    远程接入--网络疑难解析(中文).pdf远程接入--网络疑难解析(中文).pdf远程接入--网络疑难解析(中文).pdf远程接入--网络疑难解析(中文).pdf远程接入--网络疑难解析(中文).pdf远程接入--网络疑难解析(中文)...

    IP路由协议疑难解析

     本书提供了关于疑难解析技巧的完整介绍和各种实例,适合各类网络管理员、网络运行工程师,以及想成功通过CCIE认证考试的读者阅读。 作者简介 · · · · · ·  Faraz Shamim,CCIE#4131,是Cisco公司服务提供...

    数字图像处理疑难解析(中文版)pdf.part1.rar

    数字图像处理疑难解析(中文版).pdf 经典教材

    IP路由协议疑难解析 中文版

    本书通过逐步介绍一个特定路由失败现象的解决方式,提供了IP路由疑难问题的独特解决...本书提供了关于疑难解析技巧的完整介绍和各种实例,适合各类网络管理员、网络运行工程师,以及想成功通过CCIE认证考试的读者阅读。

    java疑难问题解惑

    本篇文章将详细解析Java中的几个典型问题,包括自增运算符的用法、字符类型相加以及窄数字类型的提升规则。 一、自增运算符的理解与应用 在Java中,自增运算符(++)有两种用法:前缀形式(++i)和后缀形式(i++)...

    Oracle数据库精讲与疑难解析

    此外,"疑难解析"的部分暗示了书中会包含一些实战案例和常见问题的解决方案,例如处理锁定和死锁,排查性能瓶颈,解决并发问题,以及如何在Oracle数据库中处理大数据量的挑战。这些问题的解决经验对于提升数据库管理...

    中文OFFICE 2000疑难解析

    《中文OFFICE 2000疑难解析》一书,主要针对的是在Windows操作系统环境下使用中文版Microsoft Office 2000过程中遇到的各种问题进行详细解答。Office 2000是微软公司推出的办公软件套装,包含了Word、Excel、...

    Oracle数据库精讲与疑难解析(第2版).part4/6

    Oracle数据库精讲与疑难解析(第2版),高清扫描。

    JAVA开发疑难问题汇总

    资源名称:JAVA开发疑难问题汇总资源目录:【】10年程序员生涯总结:从C 到Java的几点思考【】50个必备的实用jQuery代码段【】5招教你把握Java性能监控【】J2EE基础:浅谈依赖注入实现的方法【】java-内部类那点事...

    数字图像处理疑难解析(中文版)part1.pdf

    数字图像处理疑难解析(中文版)part1.pdf

    数字图像处理疑难解析(中文版)part2.pdf

    数字图像处理疑难解析(中文版)part2.pdf

    远程接入网络疑难解析.pdf

    CCIE系列书籍 远程接入网络疑难解析 全中文 影印版 CCNP也可以使用CCIE系列书籍 远程接入网络疑难解析 全中文 影印版 CCNP也可以使用

    Oracle数据库精讲与疑难解析.rar

    本资料“Oracle数据库精讲与疑难解析”旨在深入讲解Oracle数据库的核心概念、操作技巧以及解决常见问题的方法,帮助用户从初学者到熟练掌握Oracle数据库管理。 第一章:Oracle数据库基础 在这一章中,我们将学习...

    中文FRONTPAGE 2000疑难解析

    **中文FRONTPAGE 2000疑难解析** FRONTPAGE 2000是微软公司开发的一款网页设计工具,它属于Office 2000套件的一部分,为初学者和专业网页设计师提供了易用性和功能性的完美结合。在使用过程中,用户可能会遇到各种...

    数字图像处理疑难解析

    数字图像处理疑难解析(中文版)是一本经典的图像处理书,是一本从数学角度出发阐述数字图像处理的理解与分析。比冈萨雷斯那本好用的多,更注重数学。

    oracle SQL疑难解析 书中SQL

    Oracle SQL疑难解析是一本专为解决数据库操作中遇到的实际问题而编写的书籍,它涵盖了大量SQL查询、数据处理和性能优化的实用技巧。在"oracle-sql-recipes-master"这个压缩包中,很可能是包含了书中的示例代码和练习...

    Java 疑难杂症_笔记.zip

    Java作为世界上最流行的编程语言之一,其复杂性和深度使得开发者在实际开发过程中经常会遇到各种疑难杂症。这份"Java 疑难杂症_笔记.zip"压缩包中的笔记,显然是为了解决这些问题而编写的,旨在帮助Java开发者提高...

Global site tag (gtag.js) - Google Analytics