使用tomcat运行php应用程序?

使用tomcat运行php应用程序?,php,tomcat,apache,Php,Tomcat,Apache,是否可以使用tomcat运行PHP应用程序 在您告诉我只使用httpd之前,我已经在我的web服务器上运行了一个Java应用程序,位于host/myapp。现在我想在主机/RoundCube上安装RoundCube 一个是PHP,一个是Java。我经常看到一些非正式的参考资料说这是可能的,但没有真正的指示。我不想把它们放在单独的端口上,我需要标准的HTTP和HTTPS端口 有人对此有任何资源吗?在Apache后面运行Tomcat是很常见的。在Apache中,您可以将某些URL定向到Tomcat,

是否可以使用tomcat运行PHP应用程序

在您告诉我只使用httpd之前,我已经在我的web服务器上运行了一个Java应用程序,位于
host/myapp
。现在我想在主机/RoundCube上安装RoundCube

一个是PHP,一个是Java。我经常看到一些非正式的参考资料说这是可能的,但没有真正的指示。我不想把它们放在单独的端口上,我需要标准的HTTP和HTTPS端口


有人对此有任何资源吗?

在Apache后面运行Tomcat是很常见的。在Apache中,您可以将某些URL定向到Tomcat,并让Apache/PHP处理其他URL(包括静态图像)


(在Unix上,Tomcat本身无法安全地运行在端口80上,而Apache可以。Tomcat作为一个Java进程,将被要求以root身份运行,而Apache将在端口80被声明后立即切换到非root权限。因此,在端口80上运行Apache并将部分或所有请求重定向到Tomcat在Unix上非常常见。)Caucho可以在jvm上运行PHP代码

这座桥在那里。这基本上是通过FastCGI运行PHP。我自己也没用过。

有点晚了,但我来了

如果您只是想在tomcat上运行真正的php,那又如何呢


关于在端口80上运行tomcat,总是有jsvc,只有google jsvc+tomcat。

tomcat被设计为JSP servlet容器。Apache是由PHP web服务器设计的。使用apache作为web服务器,响应PHP请求,并将JSP servlet请求直接发送到tomcat容器。应该更好地实施。

是的,这是可能的。我们可以在tomcat服务器中使用自己的端口号localhost:8080运行PHP代码

在这里,我写了一些对你非常有用的步骤

如何在windows中的Tomcat 6上安装或运行PHP

  • 下载PHP5并将其解压到目录中,
    c:\PHP-5.2.6-Win32
    -

  • 下载PECL 5.2.5 Win32二进制文件-

  • c:\php-5.2.6-Win32

  • php.ini
    中取消注释或添加行(删除开头的分号):
    ;extension=php\u java.dll

  • php5servlet.dll
    从PECL 5.2.5复制到
    c:\php-5.2.6-Win32

  • php\u java.dll
    PECL 5.2.5复制到
    c:\php-5.2.6-Win32\ext

  • php\u java.jar
    PECL 5.2.5复制到
    tomcat\lib

  • tomcat\webapps
    目录中创建一个名为
    “php”
    (或任何你喜欢的)的目录

  • phpsrvlt.jar
    PECL 5.2.5复制到
    tomcat\webapps\php\WEB-INF\lib

  • Unjar或unzip
    phpsrvlt.jar
    用于解压使用winrar或winzip用于Unjar:
    jar xfv phpsrvlt.jar

  • net\php\reflect.properties
    net\php\servlet.properties
    更改为
    library=php5servlet

  • 重新创建jar文件 ->jar cvf php5srvlt.jar net/php/。 PS:如果jar文件没有运行,您必须为我添加系统变量的路径,我添加了
    C:\ProgramFiles\Java\jdk1.6.0\bin;至系统变量/路径

  • 使用以下内容在
    tomcat\webapps\php\web-INF
    中创建
    web.xml

    <web-app version="2.4" 
      xmlns="http://java.sun.com/xml/ns/j2ee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance "
      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
      http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd ">
      <servlet>
        <servlet-name>php</servlet-name>
        <servlet-class>net.php.servlet</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>php-formatter</servlet-name>
        <servlet-class>net.php.formatter</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>php</servlet-name>
        <url-pattern>*.php</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>php-formatter</servlet-name>
        <url-pattern>*.phps</url-pattern>
      </servlet-mapping>
    </web-app>
    
    
    php
    net.php.servlet
    php格式化程序
    net.php.formatter
    php
    *.php
    php格式化程序
    *.phps
    
  • 在Windows环境中将PHP路径(
    c:\PHP-5.2.6-Win32
    )添加到您的系统或用户路径(提示:右键单击并从My Computer

  • 创建
    test.php
    以便在
    tomcat\webapps\php
    下进行测试

  • 重新启动tomcat

  • 浏览
    localhost:8080/php/test.php


  • 如果有人还在看- 有一个war,允许在ApacheTomcat或glassfish中运行PHP脚本

  • 确保您的服务器上安装了php
  • 从中查找php java桥的最新版本
  • 从Sourceforge上的分解目录下载
    phpservlet.jar
    JavaBridge.jar
  • 将这些jar文件放入项目的
    webapp/WEB-INF/lib
    文件夹中
  • 编辑webapp/WEB-INF/WEB.xml,使其看起来像:
  • 
    PhpCGIFilter
    php.java.servlet.PhpCGIFilter
    PhpCGIFilter
    /*
    php.java.servlet.ContextLoaderListener
    PhpJavaServlet
    php.java.servlet.PhpJavaServlet
    PhpCGIServlet
    php.java.servlet.fastcgi.FastCGIServlet
    0
    PhpJavaServlet
    *.phpjavabridge
    PhpCGIServlet
    *.php
    
    此文件中可能有其他内容,请确保已在web app标记之间添加了所有内容

  • 将php文件添加到webapp目录

  • 你也可以用它做其他特殊的事情。你可以在这里了解更多信息:

    这绝对是最简单的选择。要从Apache调用Tomcat,你应该看看Apache mod_jk模块。当然,你可以在Unix上的端口80上运行Tomcat,而不必使用root。只需使用iptables将端口80重定向到端口8080。@Kim,我不会将使用iptables归类为在端口80上运行Tomcat,但你是对的:使用Apache不是唯一的选择。(不过,使用Apache确实有其他好处,比如提供静态内容。我的声明“首选”当然有点过于简化。)现在,在Ubuntu10.04中,Tomcat配置了authbind,可以使用1024以下的端口,并且工作得非常好。使用Quercus,您还可以顺利运行一些(大多数)PHP脚本。没错,但是您不需要使用Caucho树脂吗?这非常好。我尝试了解决方案
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app>
       <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>
       <!-- the following adds the JSR223 listener. Remove it if you don't want to use the JSR223 API -->
       <listener>
          <listener-class>php.java.servlet.ContextLoaderListener</listener-class>
       </listener>
       <!-- the back end for external (console, Apache/IIS-) PHP scripts; remove it if you don't need this -->
       <servlet>
          <servlet-name>PhpJavaServlet</servlet-name>
          <servlet-class>php.java.servlet.PhpJavaServlet</servlet-class>
       </servlet>
       <!-- runs PHP scripts in this web app; remove it if you don't need this -->
       <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>
    </web-app>