无法在Tomcat下运行PHP脚本


Cannot run PHP script under Tomcat

我使用Tomcat 6。我已经安装了PHP,并尝试让PHP与PHP/JavaBridge在Tomcat内运行。我已经部署了javbridge。Tomcat的webapps目录中的war。当运行任何PHP脚本时,我将得到下面的错误。请帮忙,谢谢你的帮助。

我是这样配置PHP的:

。/配置——with-mime-magic——with-config-file-path =/usr/地方/Zend/等——with-apxs2 =/usr/地方/输入/bin/apx型——with-libxml-dir =/usr——with-mhash =/usr/当地——with-bz2 =/usr——使用curl =/usr——with-gettext =/usr——使用mysql =/usr/地方/mysql——with-mcrypt =/usr/当地——enable-magic-quotes——enable-bcmath——enable-calendar——enable-ftp——enable-sockets——enable-wddx——enable-mbstring——enable-zip——enable-exif——与gd =/usr——with-freetype-dir =/usr——with-jpeg-dir =/usr——with-png-dir =/usr——enable-gd-native-ttf——enable-fastcgi——enable-force-cgi-redirect

来自Tomcat的错误消息如下:

HTTP状态500 -

type Exception report

消息

描述服务器遇到一个内部错误(),阻止

异常

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)根本原因

. io .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)根本原因

. 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.美元运行(FCGIConnectionFactory.java: 109)在Apache中提供了对根本原因的完整堆栈跟踪Tomcat/6.0.29日志。

Apache Tomcat/6.0.29

我有和你一样的错误,这里你漏掉的关键点是:

PHP CLI(命令行接口)需要setup才能与java-php一起工作桥

当你声称已经安装PHP(任何方式XAMPP/WAMP)

执行以下步骤:

  • 添加PHP到PATH环境变量-帮助
  • 通过运行CMD>

    确认配置
    php-cgi -v
    
  • 通过以上命令,您将看到PHP版本信息<
  • 重启Tomcat/gh>

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

我也遇到了同样的问题。另一个建议是添加

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

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

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

catalina.sh。我跳转服务器并连接到server/JavaBridgeTemplate621/并获得PHP/Java Bridge设置页面。

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