Windows

mod_wsgi 在 Windows 7 上不適用於 Apache 2.4.12 64 位

  • August 23, 2018

我在 Windows 7 64位上執行Apache (Haus) 2.4.12 64位。已安裝Python 2.7.9 64 位。如果我不嘗試載入mod_wsgi ,Apache 執行完美。我從這個站點下載了 mod_wsgi.so 。我提取了這個文件,將mod_wsgi.so複製到C:\Apache24\modules並將這一行添加到httpd.conf

LoadModule wsgi_module modules/mod_wsgi.so

之後,Apache 不再工作:

C:\Apache24\bin>httpd.exe -k start
httpd.exe: Syntax error on line 76 of C:/Apache24/conf/httpd.conf: Cannot load 
modules/mod_wsgi.so into server: The specified module could not be found.

它說它找不到mod_wsgi.so,但我檢查了很多次,它就在那裡!我對站點中的每四個可用的 64 位版本都嘗試了相同的過程,但它們都給出了相同的錯誤。我不知道發生了什麼。我已經嘗試過用 VC9、VC11 編譯的 Apache Haus 2.4.12 和用 VC10 編譯的 Apache Lounge 2.4.12。有人可以幫我嗎?


PS:這個問題這個問題並沒有解決我的問題。一切都已經是 64 位了,我正在正確載入模組,並且為所有使用者安裝了 Python。

我想我找到了解決方案。我對在具有 mod_wsgi.so 的 Windows 二進製文件的站點中下載哪個文件感到困惑。這是文件名的結構(這是我不理解的):

mod_wsgi

$$ WSGI version $$+ap$$ Apache version $$vc$$ Visual C++ Redistributable version that was used to compile Apache $$-cp$$ Python version $$-沒有贏$$ 32/64 bit version $$.whl

有些人遇到兼容性問題,因為它需要匹配確切的 Apache 版本,使用確切的 Visual C++ Redistributable 版本編譯,安裝指定的確切 Python 版本,根據您下載的文件,所有這些都是 32 位或 64 位版本。如果其中一些不匹配,您將遇到我遇到的錯誤。解決方案是根據您安裝的內容下載適當的文件,或者安裝可用於這些 Windows 二進製文件的文件。就我而言,我試圖使用 Python 2.7 64 位,不幸的是,這個版本沒有 mod_wsgi 二進製文件。所以這是我安裝的:

  • Python 2.7.9 32 位
  • 阿帕奇豪斯 2.4.12 32 位 VC9
  • mod_wsgi‑4.4.11+ap24vc9‑cp27‑none‑win32.whl

然後我只是解壓縮了 .whl 文件,將它放在模組文件夾中,並在 httpd.conf 中為它添加了一個 LoadModule 指令。很遺憾我必須使用 32 位架構,但至少現在一切似乎都執行良好,並且 wsgi_module 出現在httpd -M已載入模組的列表中。我希望這個答案可以幫助有需要的人!

引用自:https://serverfault.com/questions/692651