1

语境:

  • WampServer 2.2 64 位(编辑:我相信我实际上有 32 位版本)
  • 阿帕奇 2.2.22
  • mod_wsgi 3.4 64bit:由本网站提供
  • Python 3.3.2 64 位
  • django 1.5.1

测试完美,python -c "import django; print(django.get_version())"所以我知道 django 安装正确。

我在 httpd.conf 中添加了 LoadModule 行来加载 mod_wsgi.so 文件,服务器重新启动没有问题。

更新:在开发服务器上运行启动项目有效。

我正在尝试完成教程 #1并启动和运行 startupproject 演示。正如本教程所建议的,我将我的代码放在文档根目录之外的一个名为www-src(有更好的名字吗?)的文件夹中。我的 wampserver 的 DocumentRoot 是DocumentRoot "c:/wamp/www/".

文件结构如下:

|- C:
    |- wamp
        |- www (DocumentRoot)
        |- www-src
            |- first_django_site
                |- first_django_site
                |   |- __pycache__
                |   |   |- __init__.cpython-33.pyc
                |   |   |- settings.cpython-33.pyc
                |   |   |- urls.cpython-33.pyc
                |   |   |- wsgi.cpython-33.pyc
                |   |- __init__.py
                |   |- settings.py
                |   |- urls.py
                |   |- wsgi.py
                |- first_django_site.conf
                |- manage.py

我希望 url 是localhost/first-django-site为了将它与 wamp 中的普通 php www 项目分开。

编写路径以访问文档根目录之外的内容的方法是什么?我不确定“../”是否有效。

以下是我尝试编写适当的 apache httpd.conf 的多种方法。最好的方法和正确的方法是什么?

区块 1:

WSGIScriptAlias /first-django-site "../www-src/first_django_site/first_django_site/wsgi.py"
WSGIPythonPath "../www-src/first_django_site"

<Directory "../www-src/first_django_site/first_django_site">
Order deny,allow
Require all granted
</Directory>

区块 2:

Alias /www-src-alias/ "c:/wamp/www-src/"

<Directory "c:/wamp/www-src/">
    Order deny,allow
    Require all granted
</Directory>

# alias is way above in the <Ifmodule> so redacted

WSGIScriptAlias /first-django-site "/www-src-alias/first_django_site/first_django_site/wsgi.py"
WSGIPythonPath "/www-src-alias/first_django_site"

<Directory "/www-src-alias/first_django_site/first_django_site">
Order deny,allow
Require all granted
</Directory>

区块 3:

Include "../www-src/first_django_site/first_django_site.conf"

first_django_site.conf

<VirtualHost *:80>
    ServerName localhost
    #ServerAlias www.mysite.com

    WSGIScriptAlias /first-django-site "../www-src/first_django_site/first_django_site/wsgi.py"
    WSGIPythonPath "../www-src/first_django_site"

    <Directory "../www-src/first_django_site/first_django_site">
    Order deny,allow
    Require all granted
    </Directory>
</VirtualHost>

块 4:这会产生 500 内部服务器错误。

WSGIScriptAlias /first-django-site "C:/wamp/www-src/first_django_site/first_django_site/wsgi.py"
WSGIPythonPath "C:/wamp/www-src/first_django_site"

<Directory "C:/wamp/www-src/first_django_site/first_django_site">
    <Files wsgi.py>
        Order deny,allow
        Require all granted
    </Files>
</Directory>
4

1 回答 1

0

我曾假设我使用的是 64 位版本的 WAMP,但虽然我仍然不确定我使用的是 32 位还是 64 位 WAMP,但我得出的结论是我使用的是 32 位版本。

我使用了 32 位版本的 mod_wsgi.so,重新启动了服务器并且它工作了。

我使用这段代码来运行服务器(如下),我可以从以下位置访问它:http://localhost/first-django-site

WSGIScriptAlias /first-django-site "C:/wamp/www-src/first_django_site/first_django_site/wsgi.py"
WSGIPythonPath "C:/wamp/www-src/first_django_site/"

<Directory "C:/wamp/www-src/first_django_site/first_django_site/">
    <Files wsgi.py>
        Order deny,allow
        Require all granted
    </Files>
</Directory>

我还下载了新的 WampServer 2.4 64 位,并且还成功设置了带有 mod_wsgi.so 64 位的 django startproject。

于 2013-07-21T20:56:15.743 回答