0

我认为我的 apache2 服务器即将设置,但它仍然返回 500 错误。这是我的.wsgi文件:

import os, sys

#path to directory of the .wsgi file ('apache/')
wsgi_dir = os.path.abspath(os.path.dirname(__file__))

#path to project root directory (parent of 'apache/')
project_dir = os.path.dirname(wsgi_dir)

sys.path.append(project_dir)
project_settings = os.path.join(project_dir, 'settings')
os.environ['DJANGO_SETTINGS_MODULE'] = 'ecomstore.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

这是我的virtualhost文件:

NameVirtualHost *:80
 <VirtualHost *:80>
      ServerAdmin admin@site.com
      ServerName www.site.com
      ServerAlias site.com

      Alias /static /home/ecomstore/static

      DocumentRoot /home/ecomstore
      WSGIScriptAlias / /home/ecomstore/apache/ecomstore.wsgi

      ErrorLog /var/log/apache2/error.log

      LogLevel warn

      CustomLog /var/log/apache2/access.log combined

 </VirtualHost>

这是我的服务器重启:

sudo /etc/init.d/apache2 restart
 * Restarting web server apache2
[Sun Apr 08 02:47:31 2012] [warn] module wsgi_module is already loaded, skipping
 ... waiting ..........[Sun Apr 08 02:47:42 2012] [warn] module wsgi_module is already loaded, skipping
   ...done.

但是,即使我在重新启动时没有收到 mod-wsgi 配置错误,我仍然会收到前面提到的 500 Internal Server 错误。有什么我想念的吗?

4

1 回答 1

0

您需要查看发出请求时的 Apache 错误日志,而不是重新启动时的错误日志。

问题的来源之一是 sys.path 不包含项目目录的父目录,由于您将 DJANGO_SETTINGS_MODULE 设置为,这将是必要的。在以下位置阅读有关此要求的信息:

http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango

并修复它。

除此之外,您需要确定它是 Apache 500 页面还是 Django 页面。如果它是 Django 的,则在 Django 设置文件中打开 DEBUG 并重新启动 Apache,以便在浏览器中显示完整的错误。解决后关闭 DEBUG。

于 2012-04-08T05:50:26.387 回答