我在跑Apache (Haus) 2.4.12 64 位在 Windows 7 64 位上。Python 2.7.9 64 位已安装。如果我不尝试加载,Apache 运行正常mod_wsgi我从本网站。我提取了这个文件,复制mod_wsgi 库到C:\Apache24\模块并将此行添加到httpd配置文件:
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 库,但我检查了很多次,它就在那里!我尝试了网站上四个可用的 64 位版本中的相同过程,但它们都给出了相同的错误。我不知道发生了什么。我已经尝试了使用 VC9、VC11 编译的 Apache Haus 2.4.12 和使用 VC10 编译的 Apache Lounge 2.4.12。有人能帮帮我吗?
附言:这个问题和这个问题没有解决我的问题。一切都已经是 64 位了,我正在正确加载模块,并且 Python 已为所有用户安装。
答案1
我想我找到了解决方案。我不知道该下载哪个文件包含 mod_wsgi.so 的 Windows 二进制文件的站点。文件名的结构如下(这是我无法理解的):
mod_wsgi[WSGI 版本]+ap[Apache 版本]vc[用于编译 Apache 的 Visual C++ Redistributable 版本]‑cp[Python 版本]‑none‑win[32/64 位版本].whl
有些人遇到了兼容性问题,因为需要匹配确切的 Apache 版本,使用确切的 Visual C++ Redistributable 版本进行编译,安装指定的确切 Python 版本,所有这些都是 32 位或 64 位版本,具体取决于您下载的文件。如果其中某些内容不匹配,您将遇到我遇到的错误。解决方案是根据您安装的内容下载相应的文件,或者安装可用于这些 Windows 二进制文件的文件。就我而言,我试图使用 Python 2.7 64 位,不幸的是这个版本没有 mod_wsgi 二进制文件。所以这是我安装的内容:
- Python 2.7.9 32 位
- Apache Haus 2.4.12 32 位 VC9
- mod_wsgi‑4.4.11+ap24vc9‑cp27‑none‑win32.whl
然后我解压了 .whl 文件,将其放在 modules 文件夹中,并在 httpd.conf 中为其添加了 LoadModule 指令。很遗憾我必须使用 32 位架构,但至少现在一切似乎都运行良好,并且 wsgi_module 出现在httpd -M
已加载模块列表中。我希望这个答案能帮助有需要的人!
答案2
本主题对 Windows 10、xampp webserver 也很有用。我一直在努力寻找适用于 Apache/2.4.27 (Win32) Python/2.7.13 的预编译 mod_wsgi.so。关联有助于找到适当版本的 mod_wsgi。您可以按照 renatov 的建议下载 .whl 文件