使用 Apache/Ubuntu 托管 Django 网站

使用 Apache/Ubuntu 托管 Django 网站

我在尝试在 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

相关内容