Почему я получаю пустую страницу при использовании Python CGI в Tomcat? - PullRequest
1 голос
/ 12 августа 2011

Я только начал изучать Python CGI, но даже не смог протестировать простейшую программу Python CGI.

Я использую Tomcat 6.0. Я уже удалил комментарии в web.xml, а также добавил <Context privileged="true">. В web.xml я дал «cgiPathPrefix» значение «cgi-bin» и добавил эту папку cgi-bin в каталог webapps/ROOT.

Программа cgi проста; следующим образом с именем test.cgi:

#!/usr/bin/python

print("Content-type: text/html")
print()
print("<title>CGI 101</title>")
print("<h1>A First CGI Example</h1>")
print("<P>Hello, CGI World!</p>")

Когда я перехожу на http://localhost:8080/cgi-bin/test.cgi, я просто получаю пустую страницу.

Что не так с этой настройкой?

Ответы [ 2 ]

1 голос
/ 25 апреля 2012

У меня была такая же проблема в другом контексте. По сути, я думаю, что проблема ОП была решена в комментариях к вопросу, eryksun, с предложением:

Установлен ли для исполняемого параметра пустая строка?

Используя Tomcat 7.0, я все настроил так, чтобы сервер не выдавал никаких ошибок при запуске, и он позволил мне запросить у WEB-INF / cgi ответ 200 «ОК», но он дал пустой HTML страница, как отмечено в OP.

Решением было расширение параметров по умолчанию до conf / 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>c:\myexact\path\to\perl.exe</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>

Мои дополнения выделены жирным шрифтом (**) выше.

В основном критическая информация поступает от источника, предложенного eryksun:

http://tomcat.apache.org/tomcat-7.0-doc/cgi-howto.html

0 голосов
/ 12 августа 2011

Ваш пример кода не соответствует HTML.Вам нужны как минимум

 <html>,<head> and <body> 

теги.

Если их добавление не излечивает проблему, то это проблема конфигурации вашего сервера и, возможно, вопрос больше подходит для serverfault.comотладить, что не так с вашим Tomcat.

...