`

让Tomcat支持PHP

    博客分类:
  • php
阅读更多

在负责一个采用JSP动态网页技术的网站时,刚好手头有PHP写的一部分功能,所以就很直接地想到让Tomcat支持PHP。Tomcat也是Apache出的,难道就只支持JSP吗?到底能否在Tomcat上用PHP呢?上网搜索了一番,很快有了第一个问题的答案:Tomcat可以支持CGI,如Perl(具体设置见附文)。但继续搜索,却迟迟无法找到让Tomcat使用PHP的方法,一般都是采取装Apache和Tomcat共存的方法来搭建所谓的支持PHP+JSP的Web平台。
  当然,其实PHP本身也支持CGI方式的使用,所以就自己动手试了一试(在Windows操作系统上):先按照附文的做法让Tomcat支持CGI,然后再改web.xml,在servlet-name为cgi的一段配置中加上:

    <init-param>
        
<param-name>executable</param-name>
        
<param-value>php</param-value>
    
</init-param>

并把PHP安装路径加入Path,这样Tomcat就能运行到PHP.exe了。重启Tomcat后,在WEB-INF目录下新建一个cgi目录,把php文件放在这里,然后访问时用虚拟映射出来的cgi-bin目录来访问这些PHP文件。
  但是如果对PHP文件不加任何改动的话,可能会发现什么输出都没有。需要在PHP文件头部加一行,输出两个回车:

echo "\n\n";

原因不太清楚。可能在等待Content-type输入,或是Perl的cgi程序风格。
  但这样配置,PHP(4.1.0以上版本)中$_REQUEST、$_GET、$_POST等变量就无法用了,只能从服务器变量或环境变量中获取QueryString了:$_SERVER["QUERY_STRING"]、$_ENV["QUERY_STRING"]。也许不支持表单的POST提交了……具体还没试过。
  由于对Tomcat不熟悉,所以这些只是在现在方法上的小修小补,可能有好的做法,还希望大家不吝指教!

附:
Using CGI Scripts with Tomcat
Tomcat is primarily meant to be a servlet/JSP container, but it has many capabilities rivalling a traditional web server. One of these is support for the Common Gateway Interface (CGI), which provides a means for running an external program in response to a browser request, typically to process a web-based form. CGI is called "common" because it can invoke programs in almost any programming or scripting language: Perl, Python, awk, Unix shell scripting, and even Java are all supported options. However, you probably wouldn't run a Java application as a CGI due to the start-up overhead; elimination of this overhead was what led to the original design of the servlet specification. Servlets are almost always more efficient than CGIs because you're not starting up a new operating-system-level process every time somebody clicks on a link or button.
Tomcat includes an optional CGI servlet that allows you to run legacy CGI scripts; the assumption is that most new back-end processing will be done by user-defined servlets and JSPs.
To enable Tomcat's CGI servlet, you must do the following:

  1. Rename the file servlets-cgi.renametojar (found in CATALINA_HOME/server/lib/) to servlets-cgi.jar, so that the servlet that processes CGI scripts will be on Tomcat's CLASSPATH.
  2. In Tomcat's CATALINA_BASE/conf/web.xml file, uncomment the definition of the servlet named cgi (this is around line 241 in the distribution).
  3. Also in Tomcat's web.xml, uncomment the servlet mapping for the cgi servlet (around line 299 in the distributed file). Remember, this specifies the HTML links to the CGI script.
  4. Either place the CGI scripts under the WEB-INF/cgi directory (remember that WEB-INF is a safe place to hide things that you don't want the user to be able to view, for security reasons), or place them in some other directory within your context and adjust the cgiPathPrefix initialization parameter of the CGIServlet to identify the directory containing the files. This specifies the actual location of the CGI scripts, which typically will not be the same as the URL in the previous step.
  5. Restart Tomcat, and your CGI processing should now be operational.

The default directory for the servlet to locate the actual scripts is WEB-INF/cgi. As has been noted, the WEB-INF directory is protected against casual snooping from browsers, so this is a good place to put CGI scripts, which may contain passwords or other sensitive information. For compatibility with other servers, though, you may prefer to keep the scripts in the traditional directory, /cgi-bin, but be aware that files in this directory may be viewable by the curious web surfer. Also, on Unix, be sure that the CGI script files are executable by the user under which you are running Tomcat.

分享到:
评论

相关推荐

    tomcat支持php运行

    首先,要让Tomcat支持PHP,你需要理解以下关键点: 1. **桥接技术**:由于Tomcat原生不支持PHP,我们需要一个桥接器或者中间件来连接PHP解释器和Tomcat。最常见的解决方案是使用`JPHP`或`Quercus`(一个纯Java实现...

    tomcat支持php

    首先,要让Tomcat支持PHP,我们需要了解Tomcat和PHP的本质差异。Tomcat是一个开源的Java Servlet容器,主要处理Java应用和JSP页面。而PHP是一种开源的服务器端脚本语言,常用于Web开发,与Apache或Nginx等HTTP服务器...

    tomcat支持php所需要的jar

    标题中的“tomcat支持php所需要的jar”指的是在Apache Tomcat服务器上运行PHP应用程序时所需的Java扩展。Tomcat是一个流行的开源Java应用服务器,主要用于部署和运行Java Servlet和JavaServer Pages(JSP)。然而,...

    PHP Tomcat支持jar包

    要使Tomcat支持PHP,需要做以下几步操作: 1. **添加PHP支持**: 首先,你需要获取PHP的Java桥接器(例如:`php-java-bridge`或`Quercus`),这是一个允许Java服务器如Tomcat执行PHP脚本的库。在提供的压缩包中,...

    Tomcat PHP支持的jar包

    标题 "Tomcat PHP支持的jar包" 暗示了我们正在讨论如何在Apache Tomcat服务器上集成PHP环境,使得Tomcat能够处理PHP脚本。这通常涉及到将PHP与Java进行桥接,以便在Java应用服务器上运行PHP代码。下面我们将深入探讨...

    tomcat支持php环境需要的jar包

    "tomcat支持php环境需要的jar包"这个压缩包可能包含了使Tomcat能够解析和执行PHP文件所需的关键库。 首先,我们需要理解Tomcat是一个纯Java的HTTP服务器,主要用来托管Java Servlet和JSP应用。它并不直接支持PHP,...

    tomcat 中运行php 环境的jar包

    这样的集成方式让开发者可以利用Tomcat的高性能特性,同时在需要的地方引入PHP的灵活性和丰富生态。不过需要注意的是,这种方式可能不如直接使用专门的PHP服务器(如Apache或Nginx)效率高,因此在实际应用中需要...

    tomcat+php 所需jar包

    在构建一个支持PHP的Tomcat服务器环境中,我们需要确保正确配置和安装了所有必要的组件和库。这个"tomcat+php 所需jar包"压缩文件很可能是为了帮助用户整合Apache Tomcat(一个流行的Java Servlet容器)与PHP(一种...

    tomcat支持php项目必须的jar包

    为了在Tomcat上运行PHP项目,我们需要引入一些特定的库和组件,这正是“tomcat支持php项目必须的jar包”提供的内容。 首先,`script-api.jar`是一个脚本API的实现,它允许Tomcat服务器与其他脚本语言进行交互,包括...

    Tomcat部署PHP环境jar依赖包

    3. **php-script.jar**:此JAR文件可能包含了PHP脚本运行时所需的辅助库或者支持类,可能包括了PHP与Java之间的通信协议实现,以及PHP代码的解析和执行机制。 4. **JavaBridge.jar**:这是Java与PHP之间的桥梁,...

    Linux6.0下Apache与tomcat 整合支持php html java(编译安装)

    "Linux 6.0 下 Apache 与 Tomcat 整合支持 PHP、HTML、Java(编译安装)" Linux 6.0 下 Apache 与 Tomcat 的整合是指在 Linux 6.0 操作系统中将 Apache 和 Tomcat 服务器整合起来,以支持 PHP、HTML 和 Java 等多种...

    tomcat php 简单配置

    由于Tomcat本身并不直接支持PHP,我们需要一个反向代理服务器(如Apache或Nginx)来转发请求。例如,在Apache中,可以添加以下`mod_proxy`配置: ```apache *:80&gt; ServerName yourdomain.com ProxyPass / ...

    PHP-5.2.1+tomcat+php配置+20个例子

    将PHP与Tomcat集成可以让用户在Java环境中使用PHP,这可能涉及到Apache的mod_proxy或者mod_jk模块,或者是通过FastCGI接口实现。配置过程包括安装PHP环境,设置PHP-CGI,然后在Tomcat服务器中配置相应的代理规则。 ...

    tomcat下部署php所需的配置php环境变量包

    通常,Tomcat主要处理Java相关的Web应用,但通过一些技巧,例如FastCGI或者通过Apache等其他Web服务器作为代理,可以使其支持PHP。这样做的一个常见原因是利用Tomcat的稳定性和性能来运行Java服务,同时通过PHP处理...

    Linux apache tomcat php mysql

    【Linux Apache Tomcat PHP MySQL】组合,也被称为LAMP架构,是Linux操作系统、Apache网络服务器、Tomcat应用服务器和MySQL数据库管理系统共同构建的Web服务环境。这种组合在开发和部署基于PHP的动态网页应用程序时...

    php mysql tomcat

    在IT领域,PHP、MySQL和Tomcat是三个非常重要的组件,它们共同构成了许多现代Web应用程序的基础架构。这里我们将深入探讨这三个技术以及它们之间的交互。 **PHP(Hypertext Preprocessor)** 是一种广泛使用的开源...

    apacheTomcat配置运行php,所需jar包JavaBridge,php-script,php-servlet,script-api

    然而,它并不直接支持PHP脚本的执行。为了在Tomcat中运行PHP应用程序,我们需要进行一些额外的配置,并引入特定的Java库。这个过程涉及到的主要知识点包括JavaBridge、php-script、php-servlet以及script-api这四个...

    tomcat运行php项目必须的jar包。

    然而,由于其主要支持Java技术,直接运行PHP项目并不是它的默认功能。但通过一些额外的配置和组件,我们可以在Tomcat上运行PHP应用程序。标题和描述中提到的"tomcat运行php项目必须的jar包"正是为了实现这个目的。 ...

    tomcat项目配置php所需jar

    tomcat项目配置php所需的jar包,web.xml配置信息如下: &lt;servlet-name&gt;Quercus Servlet &lt;servlet-class&gt;com.caucho.quercus.servlet.QuercusServlet&lt;/servlet-class&gt; &lt;param-name&gt;license-directory ...

Global site tag (gtag.js) - Google Analytics