热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用php-java-bridge让PHP5支持java

使用php-java-bridge让PHP5支持java:一、下载:http:ncu.dl.sourceforge.netprojectphp-java-bridgeRHE

使用php-java-bridgePHP5支持java

一、下载:

http://ncu.dl.sourceforge.net/project/php-java-bridge/RHEL_FC%20SecurityEnhancedLinux/php-java-bridge_5.5.4.1/php-java-bridge_5.5.4.1.tar.gz

 

最新的版本是:php-java-bridge_6.1.2.1.tar.gz

但不能使用这个版本,因为这个版本中缺少一个函数:java_require

 

二、首先说明一下安装不成功的情况:

解压:

tar zxvf php-java-bridge_5.5.4.1.tar.gz

 

进入目录:

cd php-java-bridge-5.5.4.1/

 

执行phpize

/usr/local/php/bin/phpize

 

编译:

./configure --with-java=$JAVA_HOME --with-php-cOnfig=/usr/local/php/bin/php-config

编译的过程和结果都是没问题的,但接下来的make操作就要注意了:

make

 

报错:

phpdoc -j -c PHPDocConfig.ini>/dev/null

/bin/sh: phpdoc: command notfound

make[1]: *** [JavaRaw.inc] 错误127

make[1]: Leaving directory`/root/downloads/jdk/php-java-bridge-5.5.4.1/server'

make: ***[/root/downloads/jdk/php-java-bridge-5.5.4.1/modules/stamp]错误2

错误信息中提示没有phpdoc 命令。

 

在网上查阅了大量资料,知道phpdoc命令是安装phpDocumentor后生成的,而phpDocumentor的安装又是有php的pear模块完成的。

三、安装pear,为安装phpDocumentor做准备

根据网络提供的大量资料显示,所以我们首先安装pear:

同样查阅了大量的网络资料来完成。

安装pear需要使用php命令来执行一个go-pear.php的文件来完成:

 

go-pear.php文件的获取:

访问:http://pear.php.net/go-pear

将整个网页内容复制下来并存储为go-pear.php即可。

我们这里可以使用vim命令建立go-pear.php文件,将内容复制进去,保存,增加执行权限即可。

 

用php命令执行go-pear.php

/usr/local/php/bin/phpgo-pear.php

 

出现如下提示:

Welcome to go-pear!

 

Go-pear will install the 'pear' command andall the files needed by

it.  This command is yourtool for PEAR installation and maintenance.

 

Go-pear also lets you download and installthe following optional PEAR

packages: PEAR_Frontend_Web-beta,PEAR_Frontend_Gtk2, MDB2.

 

 

If you wish to abort, press Control-C now, or press Enter tocontinue:

回车,出现如下内容:

HTTP proxy (http://user:password@proxy.myhost.com:port), orEnter for none::

再回车,出现如下内容,提示你安装位置:

Below is a suggested file layout for your new PEARinstallation.  To

change individual locations, type the number in front of the

directory.  Type 'all' to change all of them orsimply press Enter to

accept these locations.

 

 1. Installation prefix ($prefix) :/root/downloads/jdk

 2. Temporary filesdirectory    : $prefix/temp

 3. Binariesdirectory           : $prefix/bin

 4. PHP code directory ($php_dir) :$prefix/PEAR

 5. Documentation basedirectory  : $php_dir/docs

 6. Data basedirectory          : $php_dir/data

 7. Tests basedirectory         : $php_dir/tests

 

1-7, 'all' or Enter to continue:

我们可以在命令行后输入1-7和all或者直接回车继续,

我们这里选择输入all,回车。

 

上一步选择all以后,就要对每一项的安装目录进行定义,这个根据变量提示来确定,这里之定义了四项,定义一项回车一次:

1-7, 'all' or Enter to continue: all

Installation prefix ($prefix) [/root/downloads/jdk] :

Temporary files directory [$prefix/temp] :

Binaries directory [$prefix/bin] :/usr/bin

PHP code directory ($php_dir) [$prefix/PEAR] :/usr/local/php/bin

Documentation base directory [$php_dir/docs] :/usr/local/php/docs

Data base directory [$php_dir/data]: /usr/local/php/data

Tests base directory [$php_dir/tests] :

 

回车后,返回刚才定义的信息:

Below is a suggested file layout for your new PEARinstallation.  To

change individual locations, type the number in front of the

directory.  Type 'all' to change all of them orsimply press Enter to

accept these locations.

 

 1. Installation prefix ($prefix) :/root/downloads/jdk

 2. Temporary filesdirectory    : $prefix/temp

 3. Binariesdirectory           : /usr/bin

 4. PHP code directory ($php_dir) :/usr/local/php/bin

 5. Documentation basedirectory  : /usr/local/php/docs

 6. Data basedirectory          : /usr/local/php/data

 7. Tests basedirectory         : $php_dir/tests

 

1-7, 'all' or Enter to continue:

 

到这里,再回车:

The following PEAR packages are bundled with PHP:PEAR_Frontend_Web-beta,

PEAR_Frontend_Gtk2, MDB2.

Would you like to install these as well? [Y/n] :

 

输入Y,继续:

Loading zlib: ok

 

Bootstrapping Installer...................

Bootstrapping PEAR.php............(remote) ok

Bootstrapping Archive/Tar.php............(remote) ok

Bootstrapping Console/Getopt.php............(remote) ok

 

Extracting installer..................

Downloading package: PEAR.............ok

Downloading package: Structures_Graph....ok

 

Preparing installer..................

Updating channel "doc.php.net"

Update of Channel "doc.php.net" succeeded

Updating channel "pear.php.net"

Update of Channel "pear.php.net" succeeded

Updating channel "pecl.php.net"

Update of Channel "pecl.php.net" succeeded

 

Installing selected packages..................

Downloading and installing package: PEAR.............warning:pear/PEARrequires           package "pear/Archive_Tar" (recommended version 1.3.7)

warning: pear/PEAR requires package "pear/Structures_Graph"(recommendedversion           1.0.3)

warning: pear/PEAR requires package "pear/Console_Getopt"(recommended version1          .2.3)

warning: pear/PEAR requires package "pear/XML_Util" (recommendedversion 1.2.1)

downloading PEAR-1.9.1.tgz ...

Starting to download PEAR-1.9.1.tgz (293,587 bytes)

......................................done: 293,587 bytes

install ok: channel://pear.php.net/PEAR-1.9.1

PEAR: Optional feature webinstaller available (PEAR's web-basedinstaller)

PEAR: Optional feature gtkinstaller available (PEAR'sPHP-GTK-based installer)

PEAR: Optional feature gtk2installer available (PEAR'sPHP-GTK2-based installer)

PEAR: To install optional features use "pear installpear/PEAR#featurename"

Installing bootstrap package: Structures_Graph.......install ok:channel://pear.          php.net/Structures_Graph-1.0.3

Downloading and installing package:Archive_Tar-stable.......downloading Archive_Tar-1.3.7.tgz ...

Starting to download Archive_Tar-1.3.7.tgz (17,610 bytes)

...done: 17,610 bytes

install ok: channel://pear.php.net/Archive_Tar-1.3.7

Downloading and installing package:Console_Getopt-stable.......downloading Console_Getopt-1.2.3.tgz...

Starting to download Console_Getopt-1.2.3.tgz (4,011 bytes)

...done: 4,011 bytes

install ok: channel://pear.php.net/Console_Getopt-1.2.3

Downloading and installing package:PEAR_Frontend_Web-beta.......downloadingPEAR_Frontend_Web-0.7.4.tgz ...

Starting to download PEAR_Frontend_Web-0.7.4.tgz (53,321bytes)

...done: 53,321 bytes

downloading HTML_Template_IT-1.3.0.tgz ...

Starting to download HTML_Template_IT-1.3.0.tgz (23,309bytes)

...done: 23,309 bytes

install ok: channel://pear.php.net/HTML_Template_IT-1.3.0

install ok: channel://pear.php.net/PEAR_Frontend_Web-0.7.4

Downloading and installing package: PEAR_Frontend_Gtk2.......Didnot download optional dependencies: pear/XML_Parser, pear/XML_Util,use --alldeps to download automatically

Did not download optional dependencies: pear/System_Command, use--alldeps to download automatically

pear/PEAR_Frontend_Gtk2 requires PHP extension "php-gtk"(version >= 2.0.0dev)

pear/Config can optionally use package "pear/XML_Parser"

pear/Config can optionally use package "pear/XML_Util"

pear/Gtk2_EntryDialog requires PHP extension "php-gtk" (version>= 2.0.0dev)

pear/Gtk2_FileDrop requires PHP extension "php-gtk" (version>= 2.0.0dev)

pear/MIME_Type can optionally use package"pear/System_Command"

downloading Config-1.10.11.tgz ...

Starting to download Config-1.10.11.tgz (27,939 bytes)

...done: 27,939 bytes

downloading MIME_Type-1.2.0.tgz ...

Starting to download MIME_Type-1.2.0.tgz (11,581 bytes)

...done: 11,581 bytes

install ok: channel://pear.php.net/Config-1.10.11

install ok: channel://pear.php.net/MIME_Type-1.2.0

Downloading and installing package: MDB2.............downloadingMDB2-2.4.1.tgz ...

Starting to download MDB2-2.4.1.tgz (119,790 bytes)

...done: 119,790 bytes

install ok: channel://pear.php.net/MDB2-2.4.1

MDB2: Optional feature fbsql available (Frontbase SQL driver forMDB2)

MDB2: Optional feature ibase available (Interbase/Firebirddriver for MDB2)

MDB2: Optional feature mysql available (MySQL driver forMDB2)

MDB2: Optional feature mysqli available (MySQLi driver forMDB2)

MDB2: Optional feature mssql available (MS SQL Server driver forMDB2)

MDB2: Optional feature oci8 available (Oracle driver forMDB2)

MDB2: Optional feature pgsql available (PostgreSQL driver forMDB2)

MDB2: Optional feature querysim available (Querysim driver forMDB2)

MDB2: Optional feature sqlite available (SQLite2 driver forMDB2)

MDB2: To install optional features use "pear installpear/MDB2#featurename"

 

******************************************************************************

WARNING!  The include_path defined in thecurrently used php.ini does not

contain the PEAR PHP directory you just specified:

If the specified directory is also not in the include_path usedby

your scripts, you will have problems getting any PEAR packagesworking.

 

到这里提示如下,提示是否更改php.ini文件

Would you like to alter php.ini?[Y/n] :

 

选择Y,继续:

php.iniinclude_path updated.

 

Current includepath          : .:/usr/local/php/lib/php

Configureddirectory          : /root/downloads/jdk/PEAR

Currently used php.ini (guess) :/usr/local/apache2/conf/php.ini

Press Enter to continue:

回车,继续,出现提示的地方就按照提示输入信息继续,直到完成! 

 

四、用pearlist可以查看安装了的pear包:

 

Package          Version State

Archive_Tar      1.3.7   stable

Config           1.10.11 stable

Console_Getopt   1.2.3   stable

HTML_Template_IT 1.3.0   stable

MDB2             2.4.1   stable

MIME_Type        1.2.0   stable

PEAR             1.9.1   stable

PEAR_Frontend_Web0.7.4   beta

Structures_Graph 1.0.3   stable

 

四、安装完了pear后,使用pear来安装PhpDocumentor

首先查找到pear安装位置:

find / -name pear

结果:

/usr/bin/pear

 

执行安装:

/usr/bin/pear installPhpDocumentor

 

Did not download optional dependencies:pear/XML_Beautifier, use --alldeps to downloadautomatically

pear/PhpDocumentor can optionally usepackage "pear/XML_Beautifier" (version >=1.1)

downloading PhpDocumentor-1.4.3.tgz...

Starting to downloadPhpDocumentor-1.4.3.tgz (2,423,486 bytes)

..........

 

当出现如下信息的时候就说明phpdoc安装完成了:

install ok:channel://pear.php.net/PhpDocumentor-1.4.3

注意:可能PhpDocumentor-1.4.3的服务器在美国加州,尽管软件只有不到3M,安装过程相当慢,有可能还会断掉,如果出现这样的情况需要多试几次才行。

 

五、接下来就是重新编译安装php-java-bridge-5.5.4.1了:

进入php-java-bridge-5.5.4.1的目录:

执行phpize

/usr/local/php/bin/phpize

 

编译:

./configure --with-java=$JAVA_HOME --with-php-cOnfig=/usr/local/php/bin/php-config

 

安装:

make clean

make

make install

注意:如果在make 过结束出现错误,那么请执行make clean清理一下,重新编译后,再make 就可以了。

 

配置:

编辑php.ini文件:

vim /usr/local/php/etc/php.ini

 

添加如下内容:

[Java]

java.java_home="/usr/local/java/jdk1.6/"

java.java="/usr/local/java/jdk1.6/jre/bin/java"

java.log_file="/var/log/php-java-bridge.log"

java.classpath="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/JavaBridge.jar"

java.libpath="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"

extension_dir ="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"

extension = java.so

 

重启php

killall php-fpm

/usr/local/php/sbin/php-fpm &

访问phpinfo页面:

 如果有java模块,就说明安装成功了。

查看是否安装和配置成功


# java -version

java version "1.6.0_32"

Java(TM) SE Runtime Environment (build 1.6.0_32-b03)

Java HotSpot(TM) Client VM (build 11.3-b02, mixed mode)

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

在JavaBridge.jar所在目录运行命令 
 # java -jar JavaBridge.jar SERVLET_LOCAL:8081 &

(加& 是让其在后台运行)


测试是否支持java:

touch Test.java

vim Test.java

加入代码

public class Test{

     public static void main(String[] args){

        System.out.println("Hello,Welcome to Linux World!");

    }

}

javac Test.java

java Test

输出 Hello,Welcome to Linux World! 则运行成功!


多谢好文章提供的思路,少走不少弯路,大功告成!


原文地址:

http://www.dangkai.com/ArticlePage/Article35457.htm


推荐阅读
  • Redis 教程01 —— 如何安装 Redis
    本文介绍了 Redis,这是一个由 Salvatore Sanfilippo 开发的键值存储系统。Redis 是一款开源且高性能的数据库,支持多种数据结构存储,并提供了丰富的功能和特性。 ... [详细]
  • 本文详细介绍了RPM包构建过程中Spec文件的结构和各部分的作用,包括包描述、准备阶段、构建过程、安装步骤、清理操作以及文件列表等关键环节。同时,提供了关于RPM宏命令、打包目录结构及常见标签的深入解析。 ... [详细]
  • SonarQube配置与使用指南
    本文档详细介绍了SonarQube的配置方法及使用流程,包括环境准备、样本分析、数据库配置、项目属性文件解析以及插件安装等内容,适用于具有Linux基础操作能力的用户。 ... [详细]
  • Kafka 示例项目中 Log4j 的配置与调试
    本文详细介绍了如何在 Kafka 源码中的示例项目配置 Log4j,以确保能够正确记录日志信息,帮助开发者更好地理解和调试代码。 ... [详细]
  • 本文介绍了如何通过安装 VirtualBox 和 Vagrant 来快速搭建和管理虚拟机环境。我们将详细探讨如何选择合适的 Box 镜像,以及如何高效地下载、添加和管理这些镜像。 ... [详细]
  • Shiro功能拓展:登录失败重试次数限制
    本文详细介绍了如何在Apache Shiro框架中实现对用户登录失败重试次数的限制,通过自定义密码匹配器来增强系统的安全性。该方法不仅能够有效防止暴力破解攻击,还能确保合法用户的账户安全。 ... [详细]
  • Linux环境下Memcached安装指南
    本文详细介绍如何在Linux虚拟机上安装Memcached,包括必要的依赖库安装,以及使用Xshell进行文件传输的具体步骤。 ... [详细]
  • 本文介绍了如何在 Linux 系统上构建网络路由器,特别关注于使用 Zebra 软件实现动态路由功能。通过具体的案例,展示了如何配置 RIP 和 OSPF 协议,以及如何利用多路由器查看工具(MRLG)监控网络状态。 ... [详细]
  • 本文详细介绍了如何在VMware环境下安装CentOS 7 Minimal,并成功配置GNOME桌面环境的过程。包括解决网络连接问题和设置默认图形界面等关键步骤。 ... [详细]
  • OpenWrt 是一款高度可定制的嵌入式 Linux 发行版,广泛应用于无线路由器等领域,拥有超过百个预装软件包。本文详细探讨如何在 OpenWrt 上通过 Luci 构建自定义模块,以扩展其功能。 ... [详细]
  • ipvsadm命令简介:ipvsadm是LVS在应用层的管理命令,我们可以通过这个命令去管理LVS的配置。在fedora14、Linux6.0之后系统中 ... [详细]
  • 本文详细介绍了Java中`org.sakaiproject.site.api.Site.addPage()`方法的功能和使用方法,并提供了多个实际项目中的代码示例。 ... [详细]
  • 本文基于https://major.io/2014/05/13/coreos-vs-project-atomic-a-review/的内容,对CoreOS和Atomic两个操作系统进行了详细的对比,涵盖部署、管理和安全性等多个方面。 ... [详细]
  • 下面根据配置文件,来说明一些底层与webservices的关系:回顾一下servlet的映射模式。我们知道,servlet是从javax.servlet.http.HttpServ ... [详细]
  • ###########性能监控脚本###########################!binbash#监控cpu系统负载IPifconfigeth0|grepinetaddr ... [详细]
author-avatar
簕竹仔_591
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有