繁体   English   中英

在 Windows 7 上运行的 WAMP 服务器上安装 mod_wsgi

[英]Installing mod_wsgi on WAMP server running on Windows 7

我从以下位置为 apache 2.2 和 python 2.7(64 位)下载了 mod_wsgi。 (我试图让 django 在我的电脑上运行)。

每当我添加以下行时:

LoadModule wsgi_module modules/mod_wsgi.so

Apache 无法启动。 谁能告诉我可能是什么问题?

这些是为 Django 设置 Apache 需要做的以下事情。 我假设您在安装了 WAMP 服务器( 32位)的 Windows( 32位)上使用 Python 2.7(32位)。

  1. 下载mod_wsgi-win32-ap22py27-3.3.so。 或者下载你各自的.so兼容文件

  2. 在 Windows 上将其名称更改为mod_wsgi.so并将其复制到/Program Files/Apache Software Foundation/Apache22/modules

  3. 使用管理员权限打开httpd.conf 现在,您将找到带有LoadModule...的行列表。 只需将LoadModule wsgi_module modules/mod_wsgi.so添加到该列表。

    您已部分完成。您可以重新启动 apache,应该不会发现任何错误。

  4. 现在您需要将它链接到您的 Django 项目。

  5. 在您的 Django 项目根文件夹中,添加apache文件夹并创建django.wsgi (不要更改此名称)和apache_mydjango.conf

  6. httpd.conf中,在页面底部添加以下行。

    Include "d:/projects/mysite/apache_django_wsgi.conf"

打开django.wsgi并添加以下行:

import os, sys

sys.path.append('d:/projects/mysite')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

打开apache_djang_wsgi.conf并添加:

Alias /images/ "d:/projects/mysite/templates/images/"
<Directory "d:/projects/mysite/images>
Order allow,deny
Allow from all
</Directory>

WSGIScriptAlias / "d:/projects/mysite/apache/django.wsgi"

<Directory "d:/projects/mysite/apache">
Allow from all
</Directory>

<VirtualHost *:80>
    DocumentRoot d:/projects/mysite
    ServerName 127.0.0.1

</VirtualHost>

笔记:

我假设你的 Django 项目层次结构是这样的:

mysite/
        mysite/
                 settings.py
                 urls.py, wsgi.py.
        manage.py
        <apache> / apache_django_wsgi.conf, django.wsgi

最佳教程链接:

  1. port25.technet.com | 发布我的微软。
  2. mod_wsgi 快速安装指南
  3. Django 站点
  4. Django 网站

其实我不明白为什么人们无法修复它。 我在这里看到了很多关于它的问题,我什至发布了一些......所以,我想直接写一个初始设置版本作为答案

尝试以下网站获取 python 扩展的非官方 Windows 二进制文件http://www.kaij.org/blog/?p=123 https://github.com/kirang89/pycrumbs/pull/28

以防万一有人在使用它但没有发现它,步骤中存在不一致。 在第 5 步中,它引用文件名apache_mydjango.conf

在第 6 步中,它引用文件名apache_django_wsgi.conf

显然,它们应该是同一个名字——不管你选择哪一种方式——但我花了一段时间试图弄清楚为什么它不起作用。

除了Olly的更正之外,Step6中还有一个错误:Instead of

Include "d:/projects/mysite/apache_django_wsgi.conf"

它应该是

Include "d:/projects/mysite/apache/apache_django_wsgi.conf"

我完成了所有步骤,但现在无法再启动 Apache Server。 Wamp 图像是红色的。 我可以按照步骤 3 中的描述重新启动 Apache。

我如何配置 Apache + Django + venv

为了让它工作,你需要三样东西:

  1. 在 python 和 apache 上安装mod_wsgi
  2. 在 apache 上设置httpd.conf
  3. 配置由mod_wsgi加载的 python 脚本(通常是 wsgi.py),然后加载你的 python 应用程序

1.官方文档描述的很清楚(我用的是pip方式)。 只需将 apache 发行版(ApacheHaus 为我工作,但不是Apache Lounge,我认为它错过了一些标头)解压到C:\之类的标准位置,将 env var MOD_WSGI_APACHE_ROOTDIR设置为其目录。 您将需要 Visual Studio 构建工具mod_wsgi 的二进制分发版。 然后pip install

2 、在httpd.conf中添加:

LoadFile ".../pythonXY/pythonXY.dll"
LoadModule wsgi_module ".../mod_wsgi/server/mod_wsgi.cpXY-win_amd64.pyd"
WSGIPythonHome ".../pythonXY"
WSGIScriptAlias / "...\wsgi.py"

如果未以标准方式安装 Python,则此处可能需要LoadFile 最好包括在内。 WSGIPythonHome指令应该指向主要的 python 发行版(不是通常所说的venv ),因为mod_wsgi可能有点无法正常工作。 例如现在WSGIPythonPath什么都不做。 或者,您可以相应地设置 PYTHONPATH 或 PYTHONHOME 环境变量。

现在您可以监视 apache 的错误日志(默认情况下在其日志文件夹中)。 如果失败,apache 将打印 mod_wsgi 配置(意味着它已安装,但无法启动 python)和/或 python 错误(如果它设法启动)。

3.在你的 python 脚本 ( wsgy.py ) 中,你需要提供启动你的应用程序的函数“应用程序” (通常编译mod_wsgi也是如此)。 但首先将 python 指向它将使用的模块和包,您自己的也一样,就在脚本中使用sys.pathsite.addsitedir Django 的 wsgi.py 很好,只需在其中添加所有路径 conf。

仅适用于运行 Windows 64 版本的用户。

我已经创建了 wsgi。 现在你只需要安装 python 并运行 apache。 这些配置已经在包中设置。 只需下载包并按照包中的“Steps to follow.txt 文件”中的说明进行操作。

您不需要从任何地方下载 python 和 apache 以及 mod_wsgi.so。 我编译了so文件,兼容python和apache2版本。 这样您就可以部署了。 只是在 apache 配置中,文档根目录已设置为 Apache2 中存在的 cgi-bin 文件夹。

可以从Zip 包中下载包

说明和包装使用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM