Apacheサーバーを使用してpythonスクリプトをcgiとして実行しようとしています。スクリプトは次のようになります:
#!/usr/bin/python
import cgi
if __name__ == "__main__":
print("Content-type: text/html")
print("<HTML>")
print("<HEAD>")
私はhttpd.confで必要な設定を行いました(私の意見では):
<Directory "/opt/lampp/htdocs/xampp/python">
Options +ExecCGI
AddHandler cgi-script .cgi .py
Order allow,deny
Allow from all
</Directory>
Chmodでスクリプトの実行権限を設定しました
ただし、ローカルホスト経由でスクリプトにアクセスしようとすると、headers:script.pyの前にエラー500:スクリプト出力の終了が表示されます。何が問題である可能性がありますか?スクリプトはUnixライクな環境で作成されているので、clrfとlfの問題は解決しないと思います。どうもありがとう。
私はあなたが後に印刷ステートメントを逃していると思います
print("Content-type: text/html")
CGIスクリプトの出力は、空白行で区切られた2つのセクションで構成されている必要があります。最初のセクションには、どの種類のデータがフォローされているかをクライアントに伝えるいくつかのヘッダーが含まれています。
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!
"""
詳細については、 python-cgi をご覧ください。
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!
"""
)