在Windows 7上,mod_wsgi不能在Apache 2.4.12 64位上运行

我在Windows 7 64位上运行Apache(Haus)2.4.12 64位。 Python 2.7.9 64位安装。 如果我不尝试加载mod_wsgi, Apache运行完美无缺。 我从这个网站下载了mod_wsgi.so。 我提取这个文件,复制mod_wsgi.soC:\ Apache24 \模块 ,并将这一行添加到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编译的Apache Haus 2.4.12,用VC10编译的VC11和Apache Lounge 2.4.12。 有人可以帮我吗?


PS: 这个问题和这个问题没有解决我的问题。 一切都已经是64位,我正确地加载模块,并为所有用户安装Python。

我想我find了解决办法。 我很困惑要下载哪个文件的站点有mod_wsgi.so的windows二进制文件 。 这是文件名的结构(这是我不理解):

mod_wsgi [WSGI版本] + ap [A​​pache版本] vc [用于编译Apache的Visual C ++可再发行版本] -cp [Python版本] -none-win [32/64位版本] .whl

有些人有兼容性问题,因为需要匹配确切的Apache版本,用精确的Visual C ++ Redistributable版本编译,已经安装了确切的Python版本,所有这些版本都是32位或64位版本。 如果其中一些不匹配,您将遇到我遇到的错误。 解决scheme是根据您安装的内容下载相应的文件,或者安装可用于使用这些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位体系结构,但至less现在一切正常,wsgi_module出现在加载模块的httpd -M列表中。 我希望这个答案帮助有需要的人!

这个主题也适用于Windows 10,xampp webserver。 我很努力地为Apache / 2.4.27(Win32)find预编译的mod_wsgi.so Python / 2.7.13这个链接对于find适当版本的mod_wsgi很有用。 您可以按照renatov的build议下载.whl文件