无法使 URL 在 Django Apache EC2 上运行

无法使 URL 在 Django Apache EC2 上运行

这是我第一次尝试使用 Django 设置网络服务器。我已经绞尽脑汁尝试设置一段时间了,但我似乎找不到任何资源以新手格式的分步方式解释这一点。

我已经在我的 EC2 实例上安装并设置了 apache 和 mod_wsgi。如何将 urls.py 文件中设置的应用程序 URL 映射到 apache?在本地,我可以通过127.0.0.1:8000/flickr/photousers在 Django 开发服务器上运行应用程序来使其正常工作。我试图让它在我的公共 DNS 上工作,就像http://ec2-122-248-194-176.ap-southeast-1.compute.amazonaws.com/flickr/photouser使用 apache 和 mod_wsgi 一样。

当我重新启动 Apache 服务器时,我也收到此错误,但状态为 OK [error] (EAI 2)Name or service not known: Could not resolve host name *.80 -- ignoring

下面列出了相关片段

django.wsgi 文件

import os,sys

apache_configuration = os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)
workspace = os.path.dirname(project)
sys.path.append(workspace)
sys.path.append(/home/djangotest/flickr)
#sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'flickr.settings'

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

httpd.conf 文件

<VirtualHost *.80>
    DocumentRoot /home/djangotest/flickr
    ServerName ec2-122-248-194-176.ap-southeast-1.compute.amazonaws.com
    ErrorLog /home/djangotest/flickr/logs/apache_error.log
    CustomLog /home/djangotest/flickr/logs/apache_access.log combined
    WSGIScriptAlias / /home/djangotest/flickr/apache/django.wsgi

    <Directory /home/djangotest/flickr/media>
        Order deny,allow
        Allow from all
    </Directory>

    <Directory /home/djangotest/flickr/apache>
        Order deny,allow
        Allow from all
    </Directory>

    LogLevel warn

    WSGIDaemonProcess ec2-122-248-194-176.ap-southeast-1.compute.amazonaws.com user=djangotest processes=2 threads=25
    WSGIProcessGroup ec2-122-248-194-176.ap-southeast-1.compute.amazonaws.com

    Alias /media/ /home/djangotest/flickr/media/
</VirtualHost>

urls.py

from django.conf.urls.defaults import *

urlpatterns = patterns('',
    # Example:
    (r'flickr/', include('flickrphotobrowser.urls')),
)

urls.py(位于我的应用程序中)

from django.conf.urls.defaults import *

from flickrphotobrowser.views import *

urlpatterns = patterns('flickrphotobrowser.views',
        (r'^phototags/$', contenttags),
        (r'^photouser/$', contentuser),
)

设置.py

ROOT_URLCONF = 'flickr.urls'

TEMPLATE_DIRS = (
        os.path.join(os.path.basename(__file__), 'templates'),
    #'home/nai/Projects/flickr/flickrphotobrowser/templates', # THIS IS FOR LOCAL ONLY
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'flickr.flickrphotobrowser',
)

我是否应该添加其他代码片段来帮助解决问题?谢谢。

答案1

在您的 httpd conf 中,更改:

<VirtualHost *.80>

<VirtualHost *:80>

并重新启动 Apache。

如果这不能解决问题,您还可以尝试添加:

sys.path.append('/home/djangotest')

到你的 django.wsgi 文件。

相关内容