Как выполнить Python CGI-скрипт под Linux - PullRequest
1 голос
/ 02 мая 2011

У меня есть сценарий Python CGI, который прекрасно выполняется на компьютере с Windows, просто запустив CGIHTTPServer в консоли, открыв html-страницу для передачи данных в сценарий и отправки данных.
Теперь мне нужно сделать это вLinux, но это оказывается сложнее.Некоторые поиски в сети дали этот скрипт для запуска сервера (я поставил 8000, так как исходные 80 не работали)

 import os  
 import BaseHTTPServer, CGIHTTPServer  
 serverAddr = ("", 8000)  
 os.chdir("/home/apannife/www")  
 serv = BaseHTTPServer.HTTPServer( \  
     serverAddr, CGIHTTPServer.CGIHTTPRequestHandler)  
 serv.serve_forever()  

html.

<HTML><HEAD><TITLE>

Test

</TITLE>

</HEAD>

<BODY>

<B>  Filename </B>

<FORM METHOD=post ACTION="cgi-bin/docking_cgi.py" ENCTYPE="multipart/form-data">

<INPUT Type="file" NAME="upfile" SIZE=45><BR>

<P><INPUT TYPE=submit></FORM>



</BODY></HTML>

и первая часть cgi.

#!/usr/bin/env python

import cgi

from cgi import FieldStorage


reshtml = '''Content-Type: text/html\n

<HTML><HEAD><TITLE>

DEMO

</TITLE></HEAD>

<BODY><H3> OUTPUT SENT TO %s %s </H3>

</BODY></HTML>'''
form = cgi.FieldStorage()

upfile = form['upfile']

Однако отправка данных просто возвращает текст скрипта cgi и не запускает его.У меня chmod-ded 775 все в поле зрения и похоже, что сервер не понимает автоматически, что я хочу, чтобы он выполнял скрипт.Как мне это сделать?спасибо.

1 Ответ

0 голосов
/ 02 мая 2011

Сервер выполняет сценарии только в каталогах /cgi-bin и /htbin относительно корня сервера.В отличие от Windows, эти имена чувствительны к регистру в Linux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...