使用JavaBridge与Tomcat一起使用PHP-未指定输入文件

时间:2019-07-03 14:09:26

标签: php tomcat php-java-bridge

我有一个Tomcat 7网络应用程序已经使用了多年。我正在尝试将PHP合并到Web应用程序中。我已将PHP文件放入Tomcat应用程序的WebContent文件夹中。

要在Tomcat容器中运行PHP,我正在使用JavaBridgeJavaBridge.jarphp-servlet.jar位于Web应用程序的lib文件夹中。

已安装(Ubuntu)启用了CGI的PHP5,并验证其工作正常:

$ php-cgi -v
PHP 5.3.10-1ubuntu3.26 with Suhosin-Patch (cgi-fcgi) (built: Feb 13 2017 20:34:08)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend php
$ php -v
PHP 5.3.10-1ubuntu3.26 with Suhosin-Patch (cli) (built: Feb 13 2017 20:37:53) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

php.ini已配置并位于/etc/php5/cgi/

web.xml更新为:

<!-- PHP - JAVA Bridge for MantisBT -->
<filter>
    <filter-name>PhpCGIFilter</filter-name>
    <filter-class>php.java.servlet.PhpCGIFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>PhpCGIFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>   
<servlet>
    <servlet-name>PhpCGIServlet</servlet-name>
    <servlet-class>php.java.servlet.fastcgi.FastCGIServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>PhpJavaServlet</servlet-name>
    <url-pattern>*.phpjavabridge</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>PhpCGIServlet</servlet-name>
    <url-pattern>*.php</url-pattern>
</servlet-mapping>

Tomcat Web应用程序已部署并正常运行,但是当从浏览器中的Web应用程序访问PHP文件时,它将返回:

No input file specified.
在浏览器窗口中

。我看到过讨论.htaccess文件的帖子,但是更深入的研究表明,这不适用于Tomcat。

此外,我可以使用cli直接运行PHP文件,并且可以:

$ php /path/to/example.php
<p>Hello World</p>

php文件:

<?php 
    echo '<p>Hello World</p>'; 
?>

在过去3天中,我查看了许多资源

catalina.out中没有关于此错误的条目,也没有PHPTomcat错误日志。

我显然缺少一些东西,但是我遵循instructions的来信没有成功。

  

我想念什么?

0 个答案:

没有答案