开发者社区> 问答> 正文

tomcat7如何配置才能运行php?

tomcat7如何配置才能运行php?

展开
收起
落地花开啦 2016-05-27 16:15:31 4961 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    一、安装和系统环境变量设置
    1、使用的PHP为php-5.4.31,不用5.5以上版本的原因是,因为他们都是使用VC11编译的,需要一个DLL,win7及一下都不支持。下载VC9编译的PHP 5.4(5.4.31) for X86的已编译版本。安装目录是D:Applicationphp-5.4.31,
    将安装后的路径设置到系统环境变量path中。
    2、perl直接下载安装即可(会自动配置环境变量,不用操心)。
    3、Tomcat用的是7.0.41版本。很多文档要求将server/lib下servlets-cgi改名为servlets-cgi.jar。从6版本以后,好像就没有server目录,内部已经自动支持cgi,只需要进行配置即可。
    Tomcat需要JDK 1.6以上,所以JDK需要先安装好。
    二、配置步骤:
    1、到D:Applicationphp-5.4.31目录下
    将php.ini-development复制一份同一目录下,命名为php.ini
    <1>设置extension_dir参数:
    extension_dir="D:\Application\php-5.4.31\ext"
    <1>设置cgi.force_redirect参数:
    cgi.force_redirect = 0
    2、打开Tomcat的conf下的context.xml文件
    给Context增加属性privileged="true",修改后的Context元素属性如下所示:
    <Context privileged="true">
    3、打开Tomcat的conf下的web.xml文件
    在servlet和servlet-mapping之间增加如下的内容:(注意,注释不能放到配置项里面,否则启动报错)

    <!—Add to support PHP & Perl -->
    <servlet>
            <servlet-name>cgi</servlet-name>
            <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
            <init-param>
              <param-name>debug</param-name>
              <param-value>0</param-value>
            </init-param>
            <init-param>
              <param-name>cgiPathPrefix</param-name>
     <param-value>WEB-INF/cgi-bin</param-value>
            </init-param>
             <load-on-startup>5</load-on-startup>
    </servlet>
    <servlet>
    <servlet-name>php</servlet-name>
    <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
    <init-param>
    <param-name>clientInputTimeout</param-name>
    <param-value>200</www.gzlij.com param-value>
    </init-param>
    <init-param>
    <param-name>debug</param-name>
    <param-value>0</param-value>
    </init-param>
    <init-param>
    <param-name>executable</param-name>
    <param-value>D:\Application\php-5.4.31\php-cgi.exe</param-value>
    </init-param>
     <init-param>
     <param-name>passShellEnvironment</param-name>
    <param-value>true</param-value>
    </init-param>
    <init-param>
    <param-name>cgiPathPrefix</param-name>
    <param-value>WEB-INF/php-bin</param-value> 
    </init-param>
    <load-on-startup>5</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>php</servlet-name>
    <url-pattern>/php-bin/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>cgi</servlet-name>
    <url-pattern>/cgi-bin/*</url-pattern>
    </servlet-mapping>

    3、脚本存放路径

      <param-name>cgiPathPrefix</param-name>
      <param-value>WEB-INF/cgi-bin</param-value>

    这里将perl脚本配置的是指向webapps/web-inf/cgi-bin目录下。

    <param-name>cgiPathPrefix</param-name>
    <param-value>WEB-INF/php-bin</param-value> 

    PHP的脚本指向的是webapps/web-inf/php-bin目录下。
    4、资源URL路径映射。
    这里如果请求的资源是/php-bin/则,指向php服务程序,如果是/cgi-bin/则指向cgi服务程序。

    <servlet-mapping>
    <servlet-name>php</servlet-name>
    <url-pattern>/php-bin/*</url-pattern>
    </servlet-mapping>
     <servlet-mapping>
    <servlet-name>cgi</servlet-name>
    <url-pattern>/cgi-bin/*</url-pattern>
    </servlet-mapping>
    2019-07-17 19:18:13
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇 立即下载
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载