我有一个Tomcat 7
网络应用程序已经使用了多年。我正在尝试将PHP合并到Web应用程序中。我已将PHP文件放入Tomcat应用程序的WebContent
文件夹中。
要在Tomcat容器中运行PHP,我正在使用JavaBridge。 JavaBridge.jar
和php-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天中,我查看了许多资源
FastCGI
作为PHP处理程序 catalina.out
中没有关于此错误的条目,也没有PHP
或Tomcat
错误日志。
我显然缺少一些东西,但是我遵循instructions的来信没有成功。
我想念什么?