无法在Tomcat下运行PHP脚本

时间:2011-08-19 12:12:27

标签: php tomcat php-java-bridge

使用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

3 个答案:

答案 0 :(得分:2)

我和你的错误有同样的错误, 你在这里缺少的关键点是:

PHP CLI (命令行界面)需要 设置 才能使用java-php  桥

因为您声称安装了PHP(任何意味着XAMPP / WAMP)

执行以下步骤:

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

    php-cgi -v
    
  • 通过上面的命令,您将看到PHP版本信息
  • 重启Tomcat

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设置页面。