У меня есть python cgi script, который отлично работает на компьютере Windows, просто запустив CGIHTTPServer в консоли, открыв страницу html, чтобы передать данные в script и отправив данные.
Теперь мне нужно сделать это под Linux, но это оказывается более сложным. Некоторые веб-поиски дали этому script, чтобы запустить сервер (я поставил 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 script и не запускает его. У меня есть chmod-ded 775 все в поле зрения, и похоже, что сервер не понимает автоматически, что я хочу, чтобы он выполнял script. Как мне это сделать? спасибо.
Сервер выполняет только сценарии под каталогами /cgi-bin
и /htbin
относительно корня сервера. В отличие от Windows эти имена чувствительны к регистру в Linux.