如何在Apache2.2中托管Django1.3.1?

时间:2012-04-25 05:23:53

标签: python windows django apache2 django-wsgi

我在WindowsXP(win32)上使用python 2.7.2,Django 1.3.1,Apache 2.2.22。通过我发现here的文档,我逐步完成了,但是当给出目录部分时

   `Alias /media/ C:/Programs/TestDjango/mysite/media/
    <Directory C:/Programs/TestDjango/mysite/media/>
    Order deny,allow
    Allow from all
    </Directory>
    WSGIScriptAlias / C:/Programs/TestDjango/mysite/apache/django.wsgi
    <Directory C:/Programs/TestDjango/mysite/apache>
    Order deny,allow
    Allow from all
    </Directory>`

并重新启动Apache,在打开localhost / mysite时出现Microsoft Visual C ++库运行时错误,并且Apache错误日志显示“渲染时捕获不正确的配置:加载pyodbc模块时出错:DLL加载失败:动态链接库(DLL) )初始化例程失败。“....我的Django应用程序在WAMP中运行,但希望知道我单独使用Apache2.2.22出错了。遵循了许多Django文档,但仍然是相同的,请帮我找到我哪里出错了。感谢

(认同由guettli确定)

2 个答案:

答案 0 :(得分:3)

我得到了解决,这是版本问题,因为我使用Apache 2.2.21而不是Apache 2.2.22,它的工作。我按照link中的步骤进行操作。

安装Python 2.7.2,Django 1.3.1和Apache2.2.21 安装modwsgi模块。

模块文件的名称类似于mod_wsgi-win32-ap22py26-2.6.so get mod_wsgi

将其复制到Apache安装的modules目录。例如,C:/ Program Files / Apache Software Foundation / Apache2.2 / modules。

将其重命名为mod_wsgi.so。右键单击 - &gt;属性单击取消阻止并应用

打开Apache的http.conf文件。

在所有其他LoadModule条目之前添加LoadModule wsgi_module modules / mod_wsgi.so行。

通过在http.conf结尾添加以下内容为Django项目配置Apache:

# Static content
    Alias /media/ C:/Programs/TestDjango/mysite/media/

    <Directory C:/Programs/TestDjango/mysite/media/>
    Order deny,allow
    Allow from all
    </Directory>

# Django dynamic content

    WSGIScriptAlias / C:/Programs/TestDjango/mysite/apache/django.wsgi

    <Directory C:/Programs/TestDjango/mysite/apache>
    Order deny,allow
    Allow from all
    </Directory>`

icardtest是Django项目的根目录。 icardtest以下的路径将特定于您的项目。此配置通过URL空间/ media /以及其余所有静态媒体通过WSGI和Django提供服务。         创建一个文件django.wsgi并添加以下内容:

      ` import os
        import sys

        sys.path.append('C:/Programs/TestDjango')
        os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

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

重启Apache。

答案 1 :(得分:0)

您的错误与您的python设置有关,而不是Apache。

Error loading pyodbc module: DLL load failed: A dynamic link library (DLL) initialization routine failed.

这意味着您与Apache一起使用的Python无法加载pyodbc模块。修复此错误后,即可继续。