簡體   English   中英

執行.py python會給出apache錯誤2(內部服務器錯誤)

[英]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_Filehttp://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.

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