美文网首页
mac上使用tomcat配置CGI

mac上使用tomcat配置CGI

作者: YocnZhao | 来源:发表于2019-05-17 15:28 被阅读0次

如果没有安装tomcat可以使用apache调用CGI,参考apache配置CGI。如果安装了tomcat,可以配置到tomcat上,比apache方便一些。
具体mac上安装tomcat可以看mac上jenkins和tomcat的配置
首先浏览器输入localhost:8080/ 先看到那只猫,不要展示文件列表。
1、打开web.xml,我机器上的地址是/usr/local/Cellar/tomcat/9.0.19/libexec/conf/,打开下面两段的注释。

 <servlet>
        <servlet-name>cgi</servlet-name>
        <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
        <init-param>
          <param-name>cgiPathPrefix</param-name>
          <param-value>WEB-INF/cgi</param-value>
        </init-param>
        <load-on-startup>5</load-on-startup>
    </servlet>
   <servlet-mapping>
        <servlet-name>cgi</servlet-name>
        <url-pattern>/cgi-bin/*</url-pattern>
    </servlet-mapping>

2、打开conf目录下的context.xml。<Context>改为<Context privileged="true">

<Context privileged="true">

    <!-- Default set of monitored resources. If one of these changes, the    -->
    <!-- web application will be reloaded.                                   -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->
</Context>

这个时候我们应该已经可以执行CGI了。那我们的python文件放哪儿呢?我们看上面配置的web.xml

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

可以看到我们要放到WEB-INF/cgi这下面,这个时候目录结构是

当前目录pwd:       /usr/local/Cellar/tomcat/9.0.19/libexec/webapps/ROOT

├── WEB-INF
│   ├── cgi
│   │   ├── hello.py
│   └── web.xml
└── main.html

这个时候我们浏览器输入 http://localhost:8080/cgi-bin/hello.py 就可以看到我们第一个CGI程序,这里给一个最简单的py示例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

print "Content-type:text/html"
print                               # 空行,告诉服务器结束头部
print '<html>'
print '<head>'
print '<meta charset="utf-8">'
print '<title>Hello World - 我的第一个 CGI 程序!</title>'
print '</head>'
print '<body>'
print '<h2>Hello World! 我是来自菜鸟教程的第一CGI程序</h2>'
print '</body>'
print '</html>'

如果想展示Html,也就是部署一个静态网页。我们要打开\conf\server.xml
在Host节点下加这么一段

        <Context path="" docBase="ROOT" debug="0" reloadable="true" crossContext="true"/>

ROOT是存放html文件夹的文件夹,配置结束后是这样子的:

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <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 path="" docBase="ROOT" debug="0" reloadable="true" crossContext="true"/>

        <!-- <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="tot_log." suffix=".txt" timestamp="true"/> -->

      </Host>

我们可以看到appBase="webapps",也就是说我们配置的文件夹是基于webapps的,也就是webapps下的一个文件目录,可以看到我是在ROOT下面做的修改

├── WEB-INF
│   ├── cgi
│   │   ├── hello.py
│   └── web.xml
└── main.html

我们浏览器输入http://localhost:8080/main.html就可以看到网页了。

相关文章

网友评论

      本文标题:mac上使用tomcat配置CGI

      本文链接:https://www.haomeiwen.com/subject/ygkoaqtx.html