【问题标题】:Configuring Apache Tomcat 6.0 to run python script inside cgi-bin on linux system?配置 Apache Tomcat 6.0 以在 linux 系统上的 cgi-bin 中运行 python 脚本?
【发布时间】:2013-08-21 03:49:26
【问题描述】:

我有一个 Ubuntu10.04 操作系统的系统。
我的 Apache tomcat(6.0.29) 安装在 /usr/local/tomcat/
我有一个 python 脚本 hello.py
我想在 cgi-bin 中运行这个 python 脚本。
Python 位于 /usr/bin/python
我正在运行的应用程序是 eegis,它运行良好。
http://localhost:8080/eegis/index.html

我已经在网上搜索了很多它说您必须使用以下配置配置 web.xml。

<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</param-value> 
</init-param> 
<init-param> 
<param-name>executable</param-name> 
<param-value>/usr/bin/python</param-value> 
</init-param> 
<init-param> 
<param-name>passShellEnvironment</param-name> 
<param-value>true</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>

我已经这样做了,但我仍然无法运行 python 脚本。
在尝试http://localhost:8080/eegis/cgi-bin/hello.py

我收到了这个错误

HTTP 状态 404 - /eegis/cgi-bin/
输入状态报告
消息 /eegis/cgi-bin/
描述 请求的资源 (/eegis/cgi-bin/) 不可用。
Apache Tomcat/6.0.29

【问题讨论】:

  • 问题已经解决了。我还是会分享我的经验。第一个问题是我的 python 脚本我忘记插入 "\n\n" (print "Content-type: text/html\n\n") [mid it \n\n 紧随其后的标题没有任何空格(打印"Content-type: text/html \n\n") 这将不起作用]在内容描述标题的末尾。其次,我将文件保存为 .py 但它应该是 .cgi 其他一切都很好。我的脚本现在正在执行。谢谢

标签: python tomcat cgi


【解决方案1】:

问题现已解决。我还是会分享我的经验。第一个问题是我的 python 脚本我忘记插入 "\n\n" (print "Content-type: text/html\n\n") [mid it \n\n 紧随其后的标题没有任何空格(打印"Content-type: text/html \n\n") 这将不起作用]在内容描述标题的末尾。其次,我将文件保存为 .py 但它应该是 .cgi 其他一切都很好。我的脚本现在正在执行。谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-27
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 1970-01-01
    相关资源
    最近更新 更多