[英]Executing .py python gives apache error 2 (internal server error)
我正在嘗試從ec2實例的html文件夾中執行.py文件。
我已經安裝了python 2.6.8,並且已經配置了httpd.conf來識別並允許執行/ var / www / html目錄中的cgi .py文件。
測試index.py文件具有以下腳本:
#!/usr/bin/python
# enable debugging
import cgitb
cgitb.enable()
print "Content-Type: text/plain\r\n\r\n"
print "Hello World!"
每當我運行mywebsite.com/index.py時,瀏覽器就會顯示內部服務器錯誤。 從httpd error_log中,我得到以下信息:
[Sun Sep 09 21:52:46 2012] [error] (2)No such file or directory: exec of '/var/www/html/index.py' failed
[Sun Sep 09 21:52:46 2012] [error] Premature end of script headers: index.py
我認為正在發生的是#!/ usr / bin / python沒有找到執行腳本的python。 因此,我在控制台中輸入了以下內容:
ls -l -F /usr/bin/python*
它給了我以下內容:
lrwxrwxrwx 1 root root 9 Sep 7 18:31 /usr/bin/python -> python2.6*
lrwxrwxrwx 1 root root 9 Sep 7 18:31 /usr/bin/python2 -> python2.6*
-rwxr-xr-x 2 root root 3536 Jun 29 06:51 /usr/bin/python26*
-rwxr-xr-x 2 root root 3536 Jun 29 06:51 /usr/bin/python2.6*
-rwxr-xr-x 1 root root 1418 Jun 29 06:51 /usr/bin/python2.6-config*
因此,從技術上講,該請求應該有效。 我想念什么?
注意:我應該提到.py文件已被更改為可執行文件,並且具有777訪問權限(暫時)。
編輯:我已經安裝了WSGI,但是我無法確定它是否正在運行。 我還輸入了whereis python,得到了以下內容:
python: /usr/bin/python2.6-config /usr/bin/python /usr/bin/python2.6 /usr/lib/python2.6 /usr/include/python2.6
通過Apache運行python程序的最佳實踐是使用WSGI。
一個好的版本是: http : //code.google.com/p/modwsgi/
一些快速入門指南應使您了解如何配置所有使用的東西:安裝-http : //code.google.com/p/modwsgi/wiki/QuickInstallationGuide配置-http://code.google.com/p / modwsgi / wiki / QuickConfigurationGuide
在這兩篇文檔之間,您應該擁有通過mod_wsgi配置和運行python應用程序所需的一切。 將mod_wsgi加載到Apache后,請特別注意http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide#WSGI_Application_Script_File和http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide#Mounting_The_WSGI_Application 。
以下是他們建議您不使用CGI的一些原因的詳細說明: http : //docs.python.org/howto/webservers.html#common-gateway-interface
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.