2017-08-12 61 views
0

Windows 10,Python 3.6,Wamp 3.0.6。 我是一個蟒蛇新手,想用燒瓶創建一個測試網站。我知道我可以使用虛擬環境,但我寧願使用運行apache 2.4.23的wamp服務器。要做到這一點,我明白我必須安裝一個mod_wsgi模塊。一個名爲Graham Dumpleton的有用人士已經使這些文件可用,並且根據Windows和Python的版本,您可以下載.whl文件。所以我已經做到了,將其重命名爲zip,解壓縮並在裏面有一堆文件夾和文件。但是,所有apache模塊文件都具有.so擴展名,下載文件中沒有這樣的文件。我想我有我需要的,但有一個過程來安裝我不明白的模塊。任何人都可以解釋我如何做到這一點?如何使用mod_wsgi模塊在wamp中運行flask

回答

1

你最好自己編譯/安裝mod_wsgi。這些.whl文件是由第三方(不是我)創建的,我不知道它們是如何構建的。

假設你有你的Apache安裝C:/Apache24下,並且安裝的Python的版本,您使用的是正確的MS C/C++編譯器,所有你需要做的安裝mod_wsgi的運行:

pip install mod_wsgi 

一旦它已安裝,運行:

mod_wsgi-express module-config 

複製它輸出的內容並將其添加到您的Apache配置文件中。然後爲您的特定WSGI應用程序配置mod_wsgi。

請注意,建議只使用www.apachelounge.com提供的Apache發行版。其他一些Apache發行版不提供允許您編譯其他Apache模塊所需的頭文件。

0

哇!沒想到我會得到這個人自己的迴應!非常感謝。

我做到了這一點:

LoadFile "c:/python36/python36.dll" 
LoadModule wsgi_module "c:/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd" 
WSGIPythonHome "c:/python36" 

,但它不工作。當然,在wamp中,Apache的位置是C:\ wamp \ bin \ apache \ apache2.4.23,我無法更改,所以我應該如何安裝mod_wsgi以獲取帳戶?

迴應格雷厄姆鄧普爾頓的11:56

抱歉缺乏信息。我跑了一些準系統代碼複製/在我的文件app.py從網上粘貼如下:

from flask import Flask 

app = Flask(__name__) 

@app.route('/') 
def index(): 
    return 'Hello World' 

if __name__ == "__main__": 
    app.run() 

這被激活,並在本地主機上運行:5000和我的「Hello World」在屏幕上。當我使用wamp通知區域圖標轉到本地主機時,我看到所有本地項目,包括我稱之爲「python-test」的這個項目。我雙擊它,看到它的組成文件,包括app.py.我雙擊app.py,url變成'localhost/python-test/app.py',屏幕顯示'Internal Server Error'與info:'Apache/2.4.23(Win64)PHP/5.6.25 mod_wsgi /4.5.17的Python /本地主機端口80'

Server日誌3.6服務器說:

[Mon Aug 14 18:22:06.218169 2017] [win32:error] [pid 6576:tid 1280] [client 127.0.0.1:50473] AH02102: C:/wamp/www/python-test/app.py is not executable; ensure interpreted scripts have "#!" or "'!" first line, referer: http://localhost/python-test/ 
[Mon Aug 14 18:22:06.218169 2017] [cgi:error] [pid 6576:tid 1280] (9)Bad file descriptor: [client 127.0.0.1:50473] AH01222: don't know how to spawn child process: C:/wamp/www/python-test/app.py, referer: http://localhost/python-test/ 

我從你的站點下載文件到點子安裝mod_wsgi的是mod_wsgi的-4.5.17 + ap24vc14-cp36- cp36m-win_amd64.whl

還有什麼可以幫助你嗎?

更多信息:Apache的錯誤日誌週二08月15日17時06分10秒

generating secret for digest authentication ... 
[Tue Aug 15 17:06:10.121529 2017] [mpm_winnt:notice] [pid 11008:tid 592] AH00455: Apache/2.4.23 (Win64) PHP/5.6.25 mod_wsgi/4.5.17 Python/3.6 configured -- resuming normal operations 
[Tue Aug 15 17:06:10.121529 2017] [mpm_winnt:notice] [pid 11008:tid 592] AH00456: Apache Lounge VC14 Server built: Jul 1 2016 11:43:51 
[Tue Aug 15 17:06:10.121529 2017] [core:notice] [pid 11008:tid 592] AH00094: Command line: 'c:\\wamp\\bin\\apache\\apache2.4.23\\bin\\httpd.exe -d C:/wamp/bin/apache/apache2.4.23' 
[Tue Aug 15 17:06:10.123535 2017] [mpm_winnt:notice] [pid 11008:tid 592] AH00418: Parent: Created child process 10952 
[Tue Aug 15 17:06:10.318641 2017] [auth_digest:notice] [pid 10952:tid 476] AH01757: generating secret for digest authentication ... 
[Tue Aug 15 17:06:10.357718 2017] [mpm_winnt:notice] [pid 10952:tid 476] AH00354: Child: Starting 64 worker threads. 
+0

你的反應不應該作爲一個答案,你應該修改你的問題,並添加新的信息的更新。這些信息應該定義爲「不起作用」,否則你會讓人猜測爲什麼。換句話說,你看到了什麼錯誤? Apache錯誤日誌中有哪些錯誤消息?你是從新的源代碼編譯mod_wsgi,還是運行從''.whl''文件安裝的''mod_wsgi module-config''?總之,提供更多細節。 –

+0

我已經添加了所有我能想到的信息,作爲對之前帖子的修改。還有什麼我可以添加的? – Perkin5

+0

您沒有包含用於配置特定WSGI應用程序的mod_wsgi配置。你是使用''WSGIScriptAlias''還是其他一些配置mod_wsgi的方法?怎麼樣?這個錯誤表明你一直在試圖使用擴展名爲「.py」的WSGI腳本文件,但仍然在Apache配置中設置了「AddHandler cgi-script .py」,導致它作爲CGI程序執行。註釋掉''cgi-script''的''AddHandler'行。 –