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

时间:2012-07-22 17:57:21

标签: python apache windows-7 wamp mod-wsgi

我从apache 2.2和python 2.7(64bit)的following location下载了mod_wsgi。 (我想让django在我的电脑上运行。)

每当我添加以下行:

LoadModule wsgi_module modules/mod_wsgi.so

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

6 个答案:

答案 0 :(得分:25)

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

  1. Download mod_wsgi-win32-ap22py27-3.3.so。或者下载相应的.so兼容文件

  2. 将其名称更改为mod_wsgi.so并将其复制到Windows上的/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"

  7. 打开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 | Published my microsoft.
    2. mod_wsgi Quick Install guide
    3. Django site
    4. Django site
    5. 其实我不明白为什么人们无法修复它。我在这里看到很多问题,我甚至发布了一些......所以,我想直接写一个初始设置版本作为答案

答案 1 :(得分:0)

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

答案 2 :(得分:0)

如果有人使用此功能并且未发现它,则步骤中存在不一致。在第5步中,它引用文件名apache_mydjango.conf

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

这些显然都应该是同一个名字 - 你走哪条路并不重要 - 但我花了一段时间试图弄清楚它为什么不起作用。

答案 3 :(得分:0)

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

我创建了wsgi。现在你只需要安装python并运行apache。 配置已在包中设置。只需下载该软件包,然后按照&#39;步骤跟踪.txt文件中的说明进行操作。礼包。

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

可以从Zip package

下载包

Instructions and package usage

答案 4 :(得分: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。

答案 5 :(得分:0)

我如何配置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,我错过了一些我认为的标头)到一个{strong>标准的地方,例如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 env vars。

现在,您可以监视apache的错误日志(默认情况下位于其日志文件夹中)。 如果失败,apache将打印mod_wsgi配置(表示已安装,但无法启动python)和/或如果成功启动则显示python错误。

3。。在python脚本(wsgy.py)中,您需要提供函数“ application” mod_wsgi通常是编译后的) ),这将启动您的应用。但是首先要在脚本中使用sys.pathsite.addsitedir将python指向您将要使用的模块和软件包。 Django的wsgi.py很好,只需在其中添加所有路径conf。