因为公司网站要用全文检索,而知名的lucene只有java和.net版本,zf里面虽然带了lucene,但其功能和效率还不足以用于生产环境,所以只有想办法在linux中用php调用java了.经过比较,发现php-java-bridge是个不错的选择,以下是linux(as4)下配置php-java-bridge的过程:

一、安装java运行环境
  1、下载jdk
      http://java.sun.com/javase/downloads/index.jsp
  2、下载完成后,复制文件到安装目录(我设的是/usr/local/java)
  3、cd /usr/local/java
  4、chmod a+x
  5、./jdk-version-linux-i386.bin
  6、安装完成后,配置环境变量
     >shell: echo "JAVA_HOME=/usr/java/jdk1.6.0_11
      PATH=$JAVA_HOME/bin:$PATH
      CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/mysql-connector-java-5.1.7-bin.jar
      export JAVA_HOME
      export PATH
      export CLASSPATH" >> /etc/profile
 
    配置完环境变量后,运行 java -version.出行java的版本信息,说明java环境安装成功
二、安装php
  1、下载php到/tmp/soft目录(php-java-bridge4需要php-5.1.4以后的版本,我用的是php-5.2.4)
  2、cd /tmp/soft/php-vsersion.tar.gz
  3、tar zxvf php...
  4、cd php-version
  5、./configure --prefix=/usr/local/php2 --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql
  6、make && make install
三、安装php-java-bridge
  1、下载php-java-bridge
      http://sourceforge.net/project/showfiles.php?group_id=117793
  2、解压后,进行php-java-bridge目录
  3、执行 /usr/local/php2/bin/phpize
  4、./configure --with-java=/usr/java/jdk1.6.0_11,/usr/java/jdk1.6.0_11/jre
  5、make && make install
  6、安装完成后,在php.ini文件增加以下内容:
     [java]
     extension=java.so
     ps:php-java-bridge是以php扩展的方式安装,所有的java文件都在php的扩展目录下。所以要确保php.ini文件中的extension_dir的路径设置正确。如安装过程正常,java不能正常调用,一般都是扩展文件调用出了问题
  7、查看phpinfo,会出现如下信息说明php-java-bridge运行
     

java

java support Enabled
java bridge 5.3.2.1.2
java.java_home /usr/java/jdk1.6.0_11
java.java /usr/java/jdk1.6.0_11/bin/java
java.log_file <stderr>
java.log_level no value (use back-end's default level)
java.security_policy Off
java command JAVA_HOME=/usr/java/jdk1.6.0_11 LD_LIBRARY_PATH=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/:/usr/local/apache2/lib: /usr/java/jdk1.6.0_11/bin/java -Djava.library.path=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/ -Djava.class.path=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/JavaBridge.jar -Djava.awt.headless=true -Dphp.java.bridge.base=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/ php.java.bridge.Standalone INET_LOCAL:0 2
java server 9267
java status running
 
  至些,php就可以调用java写的类文件了
Logo

更多推荐