热门标签 | 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


推荐阅读
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 在Ubuntu系统中安装Android SDK的详细步骤及解决“Failed to fetch URL https://dlssl.google.com/”错误的方法
    在Ubuntu 11.10 x64系统中安装Android SDK的详细步骤,包括配置环境变量和解决“Failed to fetch URL https://dlssl.google.com/”错误的方法。本文详细介绍了如何在该系统上顺利安装并配置Android SDK,确保开发环境的稳定性和高效性。此外,还提供了解决网络连接问题的实用技巧,帮助用户克服常见的安装障碍。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
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社区 版权所有