Tomcat服务器中部署mantisBT的正确方法

本文详述了在Windows环境下,将MantisBT缺陷跟踪系统成功部署至Tomcat服务器的过程,包括配置PHP环境、调整Tomcat配置及解决安装过程中遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因工作需要部署一个缺陷跟踪系统,综合考虑后决定选用mantisBT。

因计算机上已运行了一个Tomcat,为节省资源考虑,想将mantisBT直接部署到Tomcat服务器中。在网上查找了很多文献方法并尝试后,搭建了PHP环境,并成功的在浏览器端查询到了PHP的版本信息,但是mantisBT一直安装不成功。

后面经过数天的资料查询和尝试,今天终于提示安装成功了,现在记下相关的配置经验备查。

使用组件

OS: Windows 7 64bits
Tomcat: version 7.0.82
JVM version: 1.7.0_79-b15
PHP version: 7.3.7(ts)
mantisBT version: 2.21.1

PHP配置

  1. https://windows.php.net/download#php-7.3下载64位Windows版PHP压缩包,选择线程安全的版本,解压到Tomcat服务器根目录下的PHP子目录中。
  2. 配置环境变量,将PHP子目录加入系统环境变量的PATH列表中,可以加入系统环境变量PATH列表。配置完成后打开命令提示符,执行命令php -v检查PHP版本信息,若能正确显示PHP版本信息则表示环境变量配置正确,否则更正环境变量配置。
  3. 将PHP子目录中的php.ini-development 文件复制一个副本并命名为php.ini,用文本编辑器打开,找到extension_dir = "ext"cgi.force_redirectextension=fileinfoextension=mbstringextension=mysqli并将它们前面的注释符号;去掉。

mantisBT

SourceForge.net下载mantisBT v2.21.0,解压至 <Tomcat服务器根目录>/webapp/mantisBt

Tomcat服务器配置

  1. 修改Tomcat配置文件 <Tomcat根目录>/conf/context.xml:按下图插入红色下划线标示的文字
    插入红色下划线的文字
  2. 修改Tomcat配置文件 <Tomcat根目录>/conf/web.xml,插入下面的配置代码:
  <!-- PHP 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</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>E:\wcpServer\server\PHP\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/mantisbt</param-value> -->
            <param-value>../mantisbt</param-value>
        </init-param>
        <load-on-startup>5</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>php</servlet-name>
        <url-pattern>/mantisbt/*</url-pattern>
    </servlet-mapping>

然后查找<welcome-file-list>块,在其中添加<welcome-file>index.php</welcome-file>

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>index.php</welcome-file>
    </welcome-file-list>
  1. 修改Tomcat配置文件 <Tomcat根目录>/conf/server.xml,在<Host ...>块中添加
        <Context docBase="mantisBT/css" path="/mantisbt/css" />
        <Context docBase="mantisBT/js"  path="/mantisbt/js"  />

使之成为:

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
        <Context docBase="mantisBT/css" path="/mantisbt/css" />
        <Context docBase="mantisBT/js"  path="/mantisbt/js"  />
      </Host>

故障现象

按上述方法配置后,在浏览器端打开"admin/install.php"页面执行安装时,总是在填写了所有数据库信息并提交后仍然返回同一个等待填写数据库信息的页面,并且数据库服务器中找不到需要创建的数据库。

解决办法

  1. Tomcat配置文件 <Tomcat根目录>/conf/web.xml中插入的配置代码中,注释掉参数cgiPathPrefix的配置块:
  <!-- PHP 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</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>E:\wcpServer\server\PHP\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/mantisbt</param-value> -->
<!--        <param-value>../mantisbt</param-value>                                -->
<!--    </init-param>                                                             -->
        <load-on-startup>5</load-on-startup>
    </servlet>

紧接着的Servlet映射更改为:

    <servlet-mapping>
        <servlet-name>php</servlet-name>
<!--    <url-pattern>/mantisbt/*</url-pattern>    -->
        <url-pattern>*.php</url-pattern>
    </servlet-mapping>
  1. Tomcat配置文件 <Tomcat根目录>/conf/server.xml,在<Host ...>块中额外添加一行
    <Context docBase="mantisBT" path="/mantisbt" reloadable="true" />
    使之成为:
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
        <Context docBase="mantisBT/css" path="/mantisbt/css" />
        <Context docBase="mantisBT/js"  path="/mantisbt/js"  />
        <Context docBase="mantisBT"     path="/mantisbt"    reloadable="true" />
      </Host>
  1. 关闭并重启Tomcat服务器,访问 http://localhost/mantisbt/admin/install.php ,终于可以继续了……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值