簡體   English   中英

Apache服務器中的Python Cgi腳本

[英]Python Cgi script in apache server

我認為我犯了一些愚蠢的錯誤,但我找不到它。 嘗試在apache網絡服務器上運行一個簡單的python cgi腳本。 我的代碼是

#/usr/bin/env python
import cgitb
import cgi
cgitb.enable()
print 'Content-Type: text/html'
print 
print '<html>'
print '<head><title>My first Python CGI app</title></head>'
print '  <body>'
print '    <p>something to try<p>'
print '  </body>'
print '</html>'

這段代碼在/ usr / lib / cgi-bin中,我嘗試通過localhost / cgi-bin / test.py運行它,但顯示500 INTERNAL SERVER ERROR 我嘗試更改其權限,沒有任何反應。 我能夠從/var/www/html/file_name.html運行html文件,所以我嘗試通過制作cgi-bin文件夾在www /和www / html /(兩者中)中移動它,沒有它,沒有任何解決方法。

我已經在apache2.conf中添加了它

    <Directory /usr/lib/cgi-bin>
    Options +ExecCGI
    AddHandler cgi-script .cgi .py
    Order allow,deny
    Allow from all
    </Directory>

和var / log / apache2 / error.log說
[2015年1月13日星期二22:54:11.422641] [cgid:error] [pid 10157:tid 140434248509184] [client 127.0.0.1:44941]在標頭之前的腳本輸出結尾:test.py
[2015年1月14日星期三00:20:24.434351] [cgid:error] [pid 26512:tid 140434573543296(8)Exec格式錯誤:AH01241:“ / usr / lib / cgi-bin / test.py”的exec失敗
[2015年1月14日星期三00:20:24.434778] [cgid:error] [pid 10158:tid 140434456491776] [client 127.0.0.1:45974]腳本輸出的結尾在標頭之前:test.py

當您遇到500個錯誤時,一個提示是在命令行上運行腳本,該腳本通常會告訴您錯別字或其他解釋程序級別的問題。 查看日志也可以報告相同的錯誤,但是通常可以通過直接運行腳本來更輕松地查看正在發生的情況。

具體來說,此行中的錯字至少是一個問題:

#/usr/bin/env python

應該是:

#!/usr/bin/env python

提示是,按原樣運行腳本會顯示錯誤,否則當您希望通過環境的python解釋器運行該錯誤時,該錯誤會通過bash解釋器顯示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM