使用Tomcat 6.我已经安装了PHP并尝试使用PHP / JavaBridge在Tomcat中运行PHP。我在Tomcat的webapps目录中部署了JavaBridge.war。运行任何PHP脚本时,我将在下面收到此错误。请帮忙,谢谢你的帮助。
这就是我配置PHP的方式:
./ configure --with-mime-magic --with-配置文件中路径= / USR /本地/ Zend的/等 --with-apxs2 =的/ usr /本地/ apache2的/ bin中/ apxs的 --with-的libxml-DIR = / USR --with-mhash =的/ usr /本地 --with-BZ2 = / USR --with卷曲= / USR --with-的gettext = / USR --with-MySQL的=在/ usr /本地/ MySQL的 --with-mcrypt的=在/ usr /本地 --enable-魔术引号 --enable-bcmath时 --enable-日历 --enable-FTP --enable-插座 --enable-WDDX --enable-mbstring的 --enable-ZIP --enable-EXIF --with-GD =在/ usr --with-freetype的-DIR = / USR --with-JPEG-DIR = / USR --with-PNG-DIR = / USR --enable-GD-本地-TTF --enable-fastcgi的 --enable力-CGI-重定向
来自Tomcat的错误消息如下:
HTTP状态500 -
输入例外报告
消息
description服务器遇到阻止的内部错误() 它来自履行这一要求。
例外
javax.servlet.ServletException: php.java.bridge.http.FCGIConnectException:无法连接到服务器 php.java.servlet.fastcgi.FastCGIServlet.init(FastCGIServlet.java:133) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861) org.apache.coyote.http11.Http11AprProtocol $ Http11ConnectionHandler.process(Http11AprProtocol.java:579) org.apache.tomcat.util.net.AprEndpoint $ Worker.run(AprEndpoint.java:1584) java.lang.Thread.run(Thread.java:662)根本原因
php.java.bridge.http.FCGIConnectException:无法连接到服务器 php.java.bridge.http.SocketChannelFactory.test(SocketChannelFactory.java:58) php.java.servlet.fastcgi.FastCGIServlet.init(FastCGIServlet.java:131) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861) org.apache.coyote.http11.Http11AprProtocol $ Http11ConnectionHandler.process(Http11AprProtocol.java:579) org.apache.tomcat.util.net.AprEndpoint $ Worker.run(AprEndpoint.java:1584) java.lang.Thread.run(Thread.java:662)根本原因
java.io.IOException:java.net.ConnectException:连接被拒绝 php.java.bridge.http.FCGIConnectException。(FCGIConnectException.java:37) php.java.bridge.http.SocketChannelFactory.test(SocketChannelFactory.java:58) php.java.servlet.fastcgi.FastCGIServlet.init(FastCGIServlet.java:131) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861) org.apache.coyote.http11.Http11AprProtocol $ Http11ConnectionHandler.process(Http11AprProtocol.java:579) org.apache.tomcat.util.net.AprEndpoint $ Worker.run(AprEndpoint.java:1584) java.lang.Thread.run(Thread.java:662)根本原因
java.io.IOException:找不到PHP。请安装php-cgi。 PHP测试 命令是:[php-cgi,-v] php.java.bridge.Util $的Process.Start(Util.java:1145) php.java.servlet.fastcgi.FCGIProcess.start(FCGIProcess.java:68) php.java.bridge.http.SocketChannelFactory.doBind(SocketChannelFactory.java:125) php.java.bridge.http.FCGIConnectionFactory.runFcgi(FCGIConnectionFactory.java:88) php.java.bridge.http.FCGIConnectionFactory $ 1.run(FCGIConnectionFactory.java:109) note注意Apache中提供了根本原因的完整堆栈跟踪 Tomcat / 6。0。29。3日志。
Apache Tomcat / 6.0.29
答案 0 :(得分:2)
我和你的错误有同样的错误, 你在这里缺少的关键点是:
PHP CLI (命令行界面)需要 设置 才能使用java-php 桥
因为您声称安装了PHP(任何意味着XAMPP / WAMP)
执行以下步骤:
通过“运行CMD”确认配置>
php-cgi -v
PHP / JavaBridge应该在此之后开始工作。
答案 1 :(得分:0)
重新安装并启用fastcgi,它对我有用!
答案 2 :(得分:0)
我遇到了同样的问题。另一个建议是添加
-Dphp.java.bridge.php_exec=/usr/bin/php
到命令行。相反,我修改了JAVA_OPTS
文件中的catalina.sh
导出以添加它。这不起作用,但我将其与上面的建议相结合并添加了
-Dphp.java.bridge.php_exec=/usr/bin/php-cgi
到catalina.sh
。我跳过服务器并连接到server / JavaBridgeTemplate621 /并获得了PHP / Java Bridge设置页面。