2017-01-01 224 views
0

我得到這個錯誤,在Windows 7家庭主版64位環境。 我曾嘗試過許多不同的方式,如apache文檔中所述。 在httpd.conf中我有以下 環境Python 3.4,apache 2.4.25 mod_wsgi py25 vc10 64位。此外,我試圖通過CGI運行Python代碼 ,它工作正常。mod_wsgi windows 7 64位安裝問題

LoadModule wsgi_module modules/mod_wsgi.so 
WSGIPythonEggs /apache2423/Apache24/htdocs 
WSGIScriptAlias /wsgi /apache2423/Apache24/htdocs/wsgi.py 
WSGIPythonPath /Python34 
<Directory /apache2423/Apache24/htdocs/> 
<Files wsgi.py> 
Require all granted 
</Files> 
</Directory> 

的代碼是:

#!/Python34/python 
import os 
import subprocess 

os.environ['PYTHON_EGG_CACHE'] = '/Apache245/Apache24/htdocs' 

def application(environ, start_response): 
    status = '200 OK' 
    output = b'<html> ... Hello World of Django ...</html>' 
    response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))] 
    start_response(status, response_headers) 
    return [output] 
+0

什麼是錯誤?你在哪裏看到這個錯誤? Apache錯誤日誌中有哪些消息? –

+0

我曾嘗試運行此代碼。 #!/ Python34 /蟒 進口OS 進口子 os.environ [ 'PYTHON_EGG_CACHE'] = '/ Apache245/Apache24/htdocs中' DEF應用(ENVIRON,start_response): 狀態= '200 OK' 輸出= b' ... Django的Hello World ...' response_headers = [('Content-type','text/plain'), ('Content-Length',str(len(output) ))] start_response(status,response_headers) return [output] – waldron

+0

那仍​​然沒有回答問題是什麼,在哪裏看到任何錯誤等。有關錯誤的詳細信息是必需的。沒有細節就無法猜測。 –

回答

0

。假定該mod_wsgi.so文件是正確的Apache的模塊目錄,改變你的Apache配置:

LoadFile /Python34/DLLs/python3.dll 
LoadModule wsgi_module modules/mod_wsgi.so 
WSGIPythonHome /Python34 

WSGIScriptAlias /wsgi /apache2423/Apache24/htdocs/wsgi.py 

<Directory /apache2423/Apache24/htdocs/> 
<Files wsgi.py> 
Require all granted 
</Files> 
</Directory> 

確認:

/Python34/DLLs/python3.dll 

確實存在。它應該是Python 3.4 DLL的位置。

推測您的Python 3.4安裝在/Python34下。

LoadFile行的要點是強制加載Python DLL。您收到的錯誤也可能表示它是由mod_wsgi.so引用的DLL在任何標準位置均未找到。

WSGIPythonHome告訴mod_wsgi Python安裝的位置。請注意,它不是像您一樣的WSGIPythonPath

您用來訪問應用程序的URL將是http://localhost/wsgi