【问题标题】:Setup django on AWS EC2在 AWS EC2 上设置 Django
【发布时间】:2013-01-08 05:12:25
【问题描述】:

我正在尝试在 AWS EC2 上托管一个 django 应用程序以用于学习目的(在 ubuntu-8.04.3 上)。 我在请求 http://ec2-x-x-x-x.compute-1.amazonaws.com 时收到“It Works”消息 但我没有得到管理页面。以下是我遵循的步骤:

urls.py:

from django.conf.urls.defaults import *
from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns('',
    (r'^admin/',include('django.contrib.admin.urls')),
)

settings.py:

INSTALLED_APPS=(
    'django.contrib.auth',
    'django.contrib.contenttypes'
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin'
)

我的网站配置: 位置:/etc/apache2/sites-enabled

<VirtualHost *:80>
    ServerAdmin admin@mysite.com
    ServerName  mysite.com
    DocumentRoot /home/demo/mysite

    Alias /static /home/demo/mysite/template/static/
    <Directory /home/demo/mysite/template/static>
        Order deny,allow
        Allow from all
    </Directory>

    Alias /media /home/demo/mysite/media/
    <Directory /home/demo/mysite/media>
        Order allow,deny
        Allow from all
    </Directory>

    WSGIScriptAlias / /home/demo/mysite/mysite.wsgi
    <Directory /home/demo/mysite>
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined
</VirtualHost>

mysite.wsgi: 位置:/home/demo/mysite/

import os, sys

sys.path.append('home/demo/mysite')
os.environ['DJANG0_SETTINGS_MODULE']='mysite.settings'

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

syncdb 进展顺利。但是在请求http://ec2-x-x-x-x.compute-1.amazonaws.com/admin 时我没有得到管理页面,尽管它包含在INSTALLED_APPSURLS.py 中。我哪里错了?我收到了The requested URL /admin was not found on this server. 消息。

【问题讨论】:

  • 顺便说一句。如果您尝试为演示/学习目的设置一些东西,您可能希望使用未计划在未来几个月内终止使用的操作系统版本。可能想看看使用 12.04。
  • @MikeBrant 是的。我遵循了一个教程并最终使用了旧版本。在此之后我肯定会尝试最新版本。这是我的第一步。 :) 顺便说一句,我哪里出错了有什么线索吗?
  • 你得到的是 Django 的 404 还是 Apache 的?听起来像是 Apache 404 对我来说......你在本地主机上得到同样的东西吗?此外,您的设置似乎一切正常,因此您可能需要重新启动服务器,看看是否有不同...
  • @MarioGudelj 这是 Apache 的 404。不是 Django 的。重启后也没有变化。看起来 django 没有被 Apache 检测到。

标签: django amazon-ec2


【解决方案1】:

拼写错误:

  <VirualHost *:80>

假设您剪切并粘贴了该代码。您可能应该运行那个方便的 apache 实用程序来检查您的配置文件是否有错误,或者读取 apache 日志文件。

【讨论】:

  • 对不起,我没有复制粘贴。这是一个错字。我可以使用命令a2ensite 启用虚拟主机。
  • 编辑了问题。还有其他想法吗?
  • 你检查过 apache 日志文件吗? “It works”消息来自 Apache,而不是 Django,因此根本没有迹象表明您的虚拟主机正在应用。也许您的 wsgi 脚本不可执行?检查 apache 错误日志文件。另外,检查 apache 错误日志文件。
  • 是的,即使我也有同样的疑问。我没有得到我们以前在 localhost 中得到的 django 欢迎页面。让我尝试阅读日志文件,但我是新手。
  • “It works”消息来自 Apache。我没有收到 Django 的欢迎页面或 404 错误页面。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 1970-01-01
  • 2019-01-19
  • 2020-08-12
  • 2014-06-06
  • 1970-01-01
  • 2018-07-09
相关资源
最近更新 更多