2

我使用 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 模块/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 机器上同时安装了这两种 Python,Apache 如何确定它应该使用哪个 Python 安装?

4

1 回答 1

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_wsgifor Python 2.6 并安装 Python 2.7 或 3.3……或者使用mod_wsgifor 本机 Python 并安装 Cygwin Python……等等。但我怀疑您已经知道了(鉴于“我已经下载了几个版本用于 Python 2.6 的 mod_wsgi 32 位 Windows 二进制文件)。

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

此外,如果我的 Windows 7 机器上同时安装了这两种 Python,Apache 如何确定它应该使用哪个 Python 安装?

这是可配置的。我相信默认值是使用它首先在您的 . 中找到的任何内容PATH,或者在您的注册表设置中显示为“默认 python 2.x”的任何内容,如PEP 397中描述的 Python 命令行启动器所使用的那样。(当然,如果那个 Python 不是它所针对的那个 Python,它将无法启动。)

于 2013-05-21T00:41:33.603 回答