13

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

每当我添加以下行时:

LoadModule wsgi_module modules/mod_wsgi.so

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

4

6 回答 6

27

这些是为 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 站点

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

于 2012-07-22T18:28:57.567 回答
0

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

于 2013-12-14T18:19:22.310 回答
0

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

在第 6 步中,它指的是文件名apache_django_wsgi.conf

这些显然都应该是同一个名字——不管你走哪条路都没有关系——但我花了一段时间试图弄清楚为什么它不起作用。

于 2014-03-09T10:01:08.087 回答
0

除了Olly的更正之外,Step6还有一个错误:而不是

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

它应该是

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

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

于 2016-03-07T16:39:53.833 回答
0

我如何配置 Apache + Django + venv

要让它工作,你需要三件事:

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

1.官方文档中描述的很好(我用的是pip方法)。只需将 apache 发行版(ApacheHaus 为我工作,但不是Apache Lounge,我认为它遗漏了一些标题)到一个标准位置,例如C:\ 将 env varMOD_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"

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

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

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

于 2020-04-18T16:35:52.440 回答
-1

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

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

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

包可以从Zip包中下载

说明和包装使用

于 2015-11-25T12:45:21.613 回答