Apache mod_wsgi 32位/ 64位Python兼容性

时间:2013-05-21 00:28:33

标签: python django apache

我使用Zend Studio / Zend Server开发基于PHP的网站,但现在我正在学习Python课程,我想学习Django。

我有一台Windows 7 AMD-64机器,并且使用的是64位Python 2.6(本课程需要2.6版本),该部分工作正常。

我的问题是尝试将mod_wsgi添加到我的Zend Server的32位Apache安装中。我已经为Python 2.6下载了几个版本的mod_wsgi 32位Windows二进制文件,并将它们复制到C:Program Files(x86)\ Zend \ Apache2 \ modules目录,编辑了httpd.conf并添加了:

LoadModule wsgi_module modules / mod_wsgi.so

重新启动Apached2.2-Zend,然后测试mod_wsgi是否在命令提示符下加载:

httpd -t -M

但是,mod_wsgi没有显示在已加载模块的列表中。

我终于认为这可能不起作用,因为我不能将64位Python 2.6与32位ZendServer Apache2.2混合搭配。

所以这是我的问题的主要内容:

我是否可以安装64位版本的Apache 2.2并与ZendServer Apache2.2同时运行(但配置64位版本,因此它不会在与ZendSever Apache2.2相同的端口上运行所以我所有的本地PHP虚拟主机仍然有效?也许我会更好的运气mod_wsgi加载这个Apache?

或者,安装一个32位版本的Python(可能是像Python 2.8这样的更高版本,因为我的课程只需要Python 2.6,而且我想让Django只为我自己的网络工作)会不会更好网站开发)?这会允许我的ZendServer Apache2.2加载mod_wsgi吗?另外,如果我在Windows 7机器上同时使用Apache,Apache如何确定应该使用哪种Python安装?

1 个答案:

答案 0 :(得分:1)

  

我是否可以安装64位版本的Apache 2.2并与ZendServer Apache2.2同时运行(但配置64位版本,因此它不会在与ZendSever Apache2.2相同的端口上运行)

是的,你可以。

你已经考虑过最困难的问题:它无法在同一个端口上侦听。

一个相关的问题是某些人的网络不允许他们与端口8080建立传出连接;如果你想处理它,你需要设置你的ZendServer作为另一台服务器的转发代理。但那真的是关于它的。

唯一的另一个问题是你需要确保你的两个Apache副本不会尝试共享相同的配置文件等(并且你可能也不希望它们都在你的PATH上)。


  

或者,安装32位版本的Python(可能是像Python 2.8这样的更高版本)会更好吗

没有2.8,永远不会。最后的2.x版本是2.7(虽然它继续得到错误修复,并且高达2.7.5)。如果你想要更高的东西,你必须去3.x.如果您需要的所有内容都在3.3(和Django 1.5+)上运行,并且您愿意学习这些小变化,那么您应该考虑这一点。但如果你想坚持你已经知道的东西,那就得2.7.5。

  

这会允许我的ZendServer Apache2.2加载mod_wsgi吗?

好吧,如果您使用mod_wsgi进行Python 2.6并安装Python 2.7或3.3 ...或者使用mod_wsgi进行本机Python并安装Cygwin Python等等,那就不一样了。但我怀疑你已经知道了(鉴于“我已经为Python 2.6下载了几个版本的mod_wsgi 32位Windows二进制文件”)。

除此之外,是的。只要一切都是正确构建和配置的,它就能工作。 (我不知道你下载和安装了哪些特定的软件包,所以我不能保证它们是否能正常工作。)

  

此外,如果我在Windows 7机器上同时使用Apache,Apache如何确定应该使用哪种Python安装?

这是可配置的。我相信默认情况下使用它在PATH上找到的任何内容,或者在注册表设置中显示为“default python 2.x”的任何内容,如{}中描述的Python命令行启动程序所使用的那样。 {3}}。 (当然,如果Python不是它所构建的那个,它将无法启动。)