我在尝试在 ubuntu/Apache 上部署我的第一个 Django 应用程序时遇到了问题。我按照 djangoproject.com 上的指南操作,并在互联网上搜索答案,但还是遇到了问题。我已经完成了基本操作并开始运行,但当我尝试访问我的网站 (twilightinternal.com) 时,出现了以下错误:
ImportError: Could not import settings 'twilight_boutique.settings' (Is it on sys.path? Does it have syntax errors?): No module named twilight_boutique.settings
我的 django 代码位于 /root/django_projects/twilight_boutique 文件夹中
我的 sites-available/twilightinternal 中有以下信息:
<VirtualHost *>
ServerAdmin [email protected]
ServerName www.twilightinternal.com
ServerAlias twilightinternal.com
DirectoryIndex index.html
DocumentRoot /var/www/twilightinternal/
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE twilight_boutique.settings
PythonOption django.root /root/django_projects/twilight_boutique
PythonDebug Off
PythonPath "['/root/django_projects', '/var/www'] + sys.path"
</Location>
</VirtualHost>
我真的陷入困境,任何帮助都将不胜感激。
答案1
首先,如果可以的话,您应该使用 mod_wsgi 或使用 FastCGI 作为后备选项。
您的 Apache 设置看起来正确,因此很可能是您的 settings.py。这很可能是权限问题。您从 /root 运行它是否有特殊原因?通常,apache 不会以 root 身份运行,并且无法读取 /root 下的任何文件。尝试将项目移动到另一个位置。
如果这没有帮助,请尝试以下一些其他调试步骤。
开发服务器是否正常运行?
cd /root/django_projects/twilight_boutique
python manage.py runserver
如果失败,则说明您的设置文件中存在语法错误。
您也可以尝试使用 python shell 来调试这个问题。从任意目录运行 python 并运行以下代码:
import sys
sys.path.insert(0, '/root/django_projects')
import twilight_boutique.settings