【问题标题】:Cannot run PHP script under TomcatTomcat下无法运行PHP脚本
【发布时间】:2011-10-30 14:03:25
【问题描述】:

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

这就是我配置 PHP 的方式:

./configure --with-mime-magic --with-config-file-path=/usr/local/Zend/etc --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr --with-mhash=/usr/local --with-bz2=/usr --with-curl=/usr --with-gettext=/usr --with-mysql=/usr/local/mysql --with-mcrypt=/usr/local --enable-magic-quotes --启用-bcmath --启用日历 --启用-ftp --启用套接字 --启用-wddx --enable-mbstring --启用压缩 --启用-exif --with-gd=/usr --with-freetype-dir=/usr --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --启用-fastcgi --enable-force-cgi-redirect

来自 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.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) 注意 Apache 中提供了根本原因的完整堆栈跟踪 Tomcat/6.0.29 日志。

Apache Tomcat/6.0.29

【问题讨论】:

  • 未找到 PHP。请安装php-cgi。
  • 嗨,我的配置行确实有 --enable-fastcgi。我需要添加任何额外的东西来启用 cgi 支持吗?我很困惑。请协助。 TIA。
  • 这能解决吗? stackoverflow.com/questions/2728632/php-java-bridge-problem - (-Dphp.java.bridge.php_exec=/usr/bin/php)

标签: php tomcat php-java-bridge


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我遇到了和你一样的错误, 您在这里缺少的关键点是:

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

    因为你声称已经安装了 PHP(任何手段 XAMPP/WAMP)

    执行以下步骤:

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

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

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

    【讨论】:

    • 刚刚做了apt-get install php-cgiservice tomcat8 restartphpinfo() 开始工作。
    【解决方案3】:

    重新安装并启用对我有用的 fastcgi!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-22
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-15
      • 2012-06-03
      • 2015-06-26
      相关资源
      最近更新 更多