zoukankan      html  css  js  c++  java
  • Linux下配置phpjavabridge

    http://blog.163.com/wu_guoqing/blog/static/19653701820128145526123/

    在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
         (不可断开!)

  • 相关阅读:
    基于文件数据库的规则引擎处理海量高复杂度数据(二,解决方案)
    内存数据库内核开发 工作日志(innodb的原理,算法详细剖析)(九)
    swift检测字符串是否在数组字符串中
    swift cell自定义左滑手势处理
    rxswift cell按钮绑定的重用问题
    swift代码统一编码规范
    TZImagePickerController获取原图
    swift 地区选择器选中数据操作
    iOS是否审核需要关闭一些操作
    项目概要评审
  • 原文地址:https://www.cnblogs.com/adodo1/p/4327471.html
Copyright © 2011-2022 走看看