2

最初,当我在我的 ubuntu 服务器上安装带有 wsgi 的 Django 1.3 时,我使用了包含的 setup.py 文件,因此当我想更新时,请按照安装指南的删除任何旧版本的 Django部分,重命名我的站点中的“django”文件夹-packages “django.old”,然后使用 Django 1.4 的 setup.py 文件安装新版本

重新启动我的 apache 服务器后,我得到了一个标准的 500 内部错误。我检查了 apache 错误日志,发现 ADMIN_MEDIA_PREFIX 已被弃用,因此按照Django 1.4 发行说明,我从设置文件中删除了 ADMIN_MEDIA_PREFIX,并将管理文件移动到名为“admin”的文件夹下的静态目录中,如图所示。

我再次重新启动了我的 apache 服务器并收到了相同的标准 500 错误,但是这次当我尝试在 apache 错误日志上运行 tail 时,没有注册新的错误。

没有任何进一步的错误消息,我真的被卡住了,所以任何帮助都将不胜感激。

以下是我的 apache 站点配置文件和 wsgi 文件的内容

站点配置:

<VirtualHost *:80>
    ServerAdmin me@mysite.com
    ServerName  www.mysite.com
    ServerAlias mysite.com

    # Indexes + Directory Root.
    # DirectoryIndex index.html index.htm index.php
    DocumentRoot /home/www/www.mysite.com/htdocs/

    # CGI Directory
    ScriptAlias /cgi-bin/ /home/www/www.mysite.com/cgi-bin/
    <Location /cgi-bin>
            Options +ExecCGI
    </Location>

    # Logfiles
    ErrorLog  /home/www/www.mysite.com/logs/error.log
    CustomLog /home/www/www.mysite.com/logs/access.log combined

    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /home/www/www.mysite.com/htdocs/>
            Options FollowSymLinks MultiViews
            AllowOverride All
           allow from all
    </Directory>

    ### Connect Django to the URL using WSGI (the django recommended method)
    WSGIScriptAlias /myproject /django/myproject/django.wsgi

    ### Alias to the location of the static dir (images, css, js etc.)
    Alias /myproject/static /django/myproject/static
    <Directory /django/myproject/static>
            Order deny,allow
            allow from all
    </Directory>
</VirtualHost>

django.wsgi:

import sys
import os
import django.core.handlers.wsgi

sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..')
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'

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

sys.path.insert(0, '/django/myproject/')
sys.path.insert(0, '/django/myproject/')

from django.core.handlers.wsgi import WSGIHandler

application = WSGIHandler()

请注意,出于安全原因,我已尝试从这些文件中删除或重命名任何识别信息,因此如果存在明显的语法错误等,可能是由于此编辑所致。这些文件的原始版本对于名称更改是相同的,并且在 Django 1.3 下运行良好

4

1 回答 1

0

django 1.4 包含一个 wsgi.py 文件配置:

请参阅文档: https ://docs.djangoproject.com/en/1.4/howto/deployment/wsgi/#the-application-object

于 2012-08-03T22:28:05.077 回答