2012-05-01 41 views
21

Khi tôi chạy python -m SimpleHTTPServer 8000 hoặc python -m CGIHTTPServer 8000 trong vỏ, tôi lưu trữ nội dung của thư mục hiện tại của tôi lên internet.Làm cách nào để lưu trữ tập lệnh python cgi bằng `python -m SimpleHTTPServer 8000` hoặc` python -m CGIHTTPServer 8000`?

Tôi muốn thực hiện công việc cgi_script.py sau một cách chính xác bằng cách sử dụng lệnh trên trong dòng lệnh khi tôi duyệt đến 192.xxx.x.xx:8000/cgi_script.py

#!/usr/bin/env python 
print "Content-Type: text/html" 
print 
print """\ 
<html> 
<body> 
<h2>Hello World!</h2> 
</body> 
</html> 
""" 

Nhưng kịch bản này sẽ được hiển thị theo nghĩa đen và không chỉ là "Hello World! " phần. Btw Tôi đã thay đổi quyền truy cập tệp thành 755 đối với cgi_script.py cũng như thư mục mà tôi lưu trữ nó.

+0

Đối với những người đang dùng thử trên mac hoặc linux, hãy đảm bảo có quyền cho phép thực thi tệp. Nói cách khác: 'chmod + x cgi-bin/cgi_script.py' – greggles

Trả lời

32

Hãy thử với python -m CGIHTTPServer 8000.

Lưu ý rằng bạn phải di chuyển tập lệnh vào thư mục cgi-bin hoặc htbin để có thể chạy được.

+0

Điều này không thay đổi bất cứ điều gì không may. (Tôi không hiểu tại sao không). – Bentley4

+0

@ Bentley4 - Vui lòng xem câu trả lời cập nhật về thư mục CGI. – rodrigo

+0

Tôi đã thử với thư mục có tên là cgi_bin, htbin và thậm chí cả cgi-bin. Không làm việc một cách thích hợp. – Bentley4

5

SO không cho phép tôi nhận xét vì vậy tôi thêm câu trả lời này làm câu trả lời riêng biệt, thêm vào câu trả lời của rodrigo.

Bạn có thể sử dụng thông số khác cgi_directories mặc định là ['/cgi-bin', '/htbin']. Thông tin thêm here

0

Khi tôi gặp sự cố này, tôi thấy rằng tùy thuộc vào thư mục bạn đang sử dụng khi bạn chạy lệnh python -m CGIHTTPServer 8000 mang lại kết quả khác nhau. Khi cố gắng chạy lệnh trong khi trong thư mục cgi-bin, trình duyệt tiếp tục trả về mã kịch bản thô. một khi tôi cd'ed một cấp cao hơn và chạy lệnh python -m CGIHTTPServer 8000 một lần nữa kịch bản của tôi đã bắt đầu thực hiện.

0

@ Bentley4 -ifyou vẫn không thể thực hiện, thử nhập cgi.

# C: \ Python34 \ python.exe -u nhập khẩu cgi print ("Content-type: text/html")

HTH

0

trong Python3 dòng lệnh đơn giản là

python -http.server --cgi 8000 
+1

và có: tập lệnh cần phải nằm trong '/ cgi-bin' – AchimG

+3

lệnh của bạn không thành công với lỗi 'Tùy chọn không xác định: -p' có ý nghĩa bởi vì bạn đang đưa' http.server' như thể nó là một tập hợp ngắn tùy chọn. Nó không hoạt động như thế này. Thay vào đó, nó phải là 'python -m http.server --cgi 8000' – josch

Các vấn đề liên quan