2013-04-08 30 views
8

Bir Apache sunucusunu kullanarak cgi olarak çalıştırılan bir python betiği yapmaya çalışıyorum. Ben (Bence) httpd.conf gerekli yapılandırmaları yaptıkpython betiğini cgi apache sunucusu olarak çalıştırın

#!/usr/bin/python 
    import cgi 
    if __name__ == "__main__": 

    print("Content-type: text/html") 
    print("<HTML>") 
    print("<HEAD>") 

: Ben chmod

ile komut dosyası için çalıştırma izni belirledik

<Directory "/opt/lampp/htdocs/xampp/python"> 
    Options +ExecCGI 
    AddHandler cgi-script .cgi .py 
    Order allow,deny 
    Allow from all 
    </Directory> 

Benim komut dosyası şuna benzer

Ancak, localhost üzerinden betiğe erişmeye çalıştığımda bir Hata 500 aldım: Başlıklardan önce komut dosyasının sonu: script.py Sorun ne olabilir? Komut bir Unix benzeri ortamda oluşturuldu, bu yüzden ben clrf vs lf'nin problemi olmadığını düşünüyorum. Çok teşekkürler.

+2

için python-cgi

hiçbir girinti var mı i Eğer betiğinizde betiğiniz yoksa ya da sadece böyle yapıştırıyor musunuz? –

+0

'python -m SimpleHTTPServer', Python'da bir HTTP sunucusu çalıştırma fikridir. –

cevap

14

Sana

print("Content-type: text/html") 

sonra boş bir çizgi ile ayrılmış iki bölümden oluşmalıdır bir CGI script çıkışı, bir yazdırma deyimi eksik olduğunu düşünüyorum. İlk bölüm, müşteriye aşağıdaki tipte türünü bildiren bir dizi başlık içermektedir.

İkinci bölüm genellikle istemci yazılımı başlık, in-line görüntülerle güzel biçimlendirilmiş metni görüntülemek için izin verir HTML, vb olduğunu

Daha fazla ayrıntı için

#!/usr/bin/env python 

print "Content-Type: text/html" 
print 
print """ 
    <TITLE>CGI script ! Python</TITLE> 
    <H1>This is my first CGI script</H1> 
    Hello, world! 
""" 

ziyaret gibi görünebilir python3

#!/usr/bin/env python3 

print("Content-Type: text/html") 
print() 
print (""" 
    <TITLE>CGI script ! Python</TITLE> 
    <H1>This is my first CGI script</H1> 
    Hello, world! 
""" 
) 
+0

Çok teşekkürler, başarısız oldu \ n \ n' ve Python 2 sözdizimi (Xampp ve Python 3). – Zso