2013-04-08 15 views
8

Apacheサーバーを使用して、cgiとして実行するpythonスクリプトを作成しようとしています。私はchmodのcgi apache serverとしてpythonスクリプトを実行

で、スクリプトの実行権限を設定している

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

:私は(私の意見では)httpd.confに必要な設定を行っている

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

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

:私のスクリプトは次のようになります

しかし、localhost経由でスクリプトにアクセスしようとすると、エラー500が表示されます:headers:script.pyの前にスクリプト出力の終了 何が問題なのですか?このスクリプトはUnixのような環境で作られているので、clrfとlfの問題は解決しないと思います。どうもありがとう。

+2

についてはpython-cgi

にはインデントの私はありませんあなたのスクリプトをif節に入れるか、それともちょうどそのように貼り付けますか? –

+0

'python -m SimpleHTTPServer'は、PythonでHTTPサーバーを実行するためのアイデアです。 –

答えて

14

は、私はあなたが

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

後、空白行で区切られた2つのセクションで構成されるべきCGIスクリプトの出力を、print文が欠落していると思います。最初のセクションには、いくつかのヘッダーが含まれ、クライアントにどのような種類のデータが続いているかが伝えられます( )。

2番目のセクションでは、通常、クライアントソフトウェアは、ヘッダー、インライン画像をきれいにフォーマットされたテキストを表示することができますHTML、などである

詳細については

#!/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! 
""" 

が訪れるようにそれが見えるかもしれません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

ありがとう、私は '\ n \ n'とPython 2の構文(XamppとPython 3)をうまく試してみました。 – Zso

関連する問題