Apache无法访问Django应用
这是一个情况说明:
如果我在设置文件的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
里。