2011-08-19 165 views
8

我正在使用Tomcat 6.我已经安装了PHP并尝试使PHP在PHP/JavaBridge的Tomcat内部运行。我在Tomcat的webapps目录中部署了JavaBridge.war。在运行任何PHP脚本时,我会在下面看到这个错误。请帮助,我感谢你的帮助。无法在Tomcat下运行PHP脚本

这是我如何配置PHP:

的./configure --with-MIME魔法 --with-配置文件路径=在/ usr /本地/ Zend公司的/ etc --with --with-mhash =/usr/local --with-bz2 =/usr --with-curl -apxs2 =/usr/local/apache2/bin/apxs --with-libxml-dir =/usr --with-mhash =/usr/=的/ usr --with-gettext的=/USR --with-mysql的=在/ usr /本地/ MySQL的 --with-mcrypt的=在/ usr /本地 --enable-魔术引号 --enable-bcmath时 --enable日历 --enable-FTP --enable的套接字 --enable-WDDX --enable-MBSTRING --enable拉链 --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 -

型异常,从完成此请求防止 它报告

消息

描述服务器遇到一个内部错误()。

例外

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.a pache.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) 注意根源的完整堆栈跟踪可在Apache Tomcat/6.0.29日志中找到。

的Apache Tomcat/6.0.29

+2

PHP未找到。请安装php-cgi。 – madflow

+0

嗨,我的配置行确实有--enable-fastcgi。我需要额外添加任何东西来启用cgi支持吗?我很困惑。请协助。 TIA。 – Segaraga

+0

这是否解决了它? http://stackoverflow.com/questions/2728632/php-java-bridge-problem - (-Dphp.java.bridge.php_exec =/usr/bin/php) – madflow

回答

0

重新安装并启用FastCGI的它为我工作!

2

我有同样的错误是你的, 你错过这里的关键点是:

PHP CLI(命令行界面)需要设置与Java-PHP 工作桥

你声称已经安装了PHP

(任何方式XAMPP/WAMP)

经过以下几个步骤:

  • 加入PHP到PATH环境变量 - Help
  • 通过运行CMD确认配置>

    php-cgi -v 
    
  • 通过上面的命令,你会看到PHP版本信息
  • 重新启动Tomcat

PHP/JavaBridge应该在此之后开始工作。

+0

刚才'apt-get install php-cgi'和'service tomcat8 restart'和'phpinfo()'开始工作。 –

0

我有同样的问题。另一个建议是将

-Dphp.java.bridge.php_exec=/usr/bin/php 

添加到命令行。相反,我修改了我的catalina.sh文件中的JAVA_OPTS导出来添加它。这是行不通的,但我把它与上面的建议结合起来,并加上

-Dphp.java.bridge.php_exec=/usr/bin/php-cgi 

catalina.sh。我退回了服务器并连接到服务器/ JavaBridgeTemplate621 /并获得了PHP/Java Bridge设置页面。