Apache无法访问Django应用

2 投票
1 回答
1709 浏览
提问于 2025-04-16 05:21

这是一个情况说明:

如果我在设置文件的INSTALLED_APPS部分去掉名为myapp的应用,整个网站就能正常工作。我在apache2.conf中添加了WSGIPythonHome。

我可以通过Django的交互式Python命令行(python manage.py shell)成功访问这些应用。我可以创建、更新和删除数据。

我使用的是标准的Apache 2设置,运行在Ubuntu 10.04 Lucid Lynx上(包括sites-enabled、mods-enabled、apache2.conf等)。

我在/home/ygamretuta/dev/myproject这个路径下运行一个虚拟环境。

我的Django项目位于/home/ygamretuta/dev/site1。

错误日志文件显示了这些内容(最后两行):

File "/home/ygamretuta/dev/myproject/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module

TemplateSyntaxError: Caught ImportError while rendering: No module named myapp

我的django.wsgi文件包含了这些内容:

import os, sys
sys.path.append('/home/ygamretuta/dev')
os.environ['DJANGO_SETTINGS_MODULE'] = 'site1.settings'

import django.core.handlers.wsgi

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

我为site1.com创建的虚拟主机文件(在sites-available文件夹中)包含了这些内容(去掉了其他细节):

WSGIDaemonProcess ygamretuta processes=2 maximum-requests=500 threads=1
WSGIProcessGroup ygamretuta
WSGIScriptAlias / /home/ygamretuta/dev/site1/apache/django.wsgi

我可能遗漏了什么?如果我不注释掉我用manage.py startapp创建的自定义应用,就会出现500内部服务器错误。

1 个回答

6

/home/ygamretuta/dev/site1 加到 sys.path 里。

撰写回答