2012-05-01 15 views
21

Kabuğumda python -m SimpleHTTPServer 8000 veya python -m CGIHTTPServer 8000'u çalıştırdığımda, geçerli dizinin içeriğini internete yüklüyorum.python cgi komut dosyası python -m SimpleHTTPServer 8000 veya python -m CGIHTTPServer 8000 ile nasıl konaklanır?

Doğru ben 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> 
""" 

gidin Ama bu senaryo tam anlamıyla gösterilir ve sadece "Merhaba Dünya komut satırında yukarıdaki komutunu kullanarak aşağıdaki cgi_script.py işi yapmak istiyorum! " Bölüm. Btw Dosya izinlerini cgi_script.py dosyasının yanı sıra barındırdığım klasör için 755 olarak değiştirdim.

+0

Bunu mac veya linux üzerinde deneyen kişiler için, dosyayı yürütmeye izin veren izinlere sahip olduğunuzdan emin olun. Diğer bir deyişle: chmod + x cgi-bin/cgi_script.py' – greggles

cevap

32

python -m CGIHTTPServer 8000 ile deneyin.

Çalıştırmak için komut dosyasını cgi-bin veya htbin dizinine taşımanız gerektiğini unutmayın.

+0

Bu maalesef hiçbir şey değişmez. (Neden anlamıyorum). – Bentley4

+0

@ Bentley4 - Lütfen CGI dizini hakkındaki güncellenmiş cevaba bakınız. – rodrigo

+0

Cgi_bin, htbin ve hatta cgi-bin adlı dizini denedim. Hiçbiri uygun şekilde çalışmamıştır. – Bentley4

5

SO yorum yapmama izin vermiyor, bu yüzden bunu ayrı bir yanıt olarak ekliyorum, rodrigo'ya ek olarak.

cgi_directories numaralı başka bir parametreyi, varsayılan olarak ['/cgi-bin', '/htbin'] olarak kullanabilirsiniz. Daha fazla bilgi here

0

Bu soruna rastladığımda, python -m CGIHTTPServer 8000 komutunu çalıştırdığınızda hangi dizinin bulunduğuna bağlı olarak farklı sonuçlar verdiğini buldum. Komutu cgi-bin dizininde çalıştırmaya çalışırken tarayıcı, ham kod kodunu döndürmeye devam etti. Bir kez daha yüksek sesle cd'ed ve bir kez daha python -m CGIHTTPServer 8000 komutunu çalıştırdım.

0

@ Bentley4-hala yapamazsınız, ithalatı cgi.

# C:! \ Python34 \ python.exe -u ithalat cgi baskı ("İçerik türü: text/html")

HTH

0

Python3 komut satırı basitçe

python -http.server --cgi 8000 
+1

ve evet: komut dosyasının '/ cgi-bin' – AchimG

+3

içinde bulunması gerekiyor, komutunuz "Bilinmeyen seçenek: -p" hatasıyla başarısız oluyor, çünkü "http.server" bir kısa setmiş gibi veriyorsunuz seçenekler. Bu şekilde çalışmıyor. Bunun yerine "python -m http.server --cgi 8000" olmalıdır. – josch